2009-06-02 7 views
5

Jak ustawić kolejność ścieżek w mrówce?Ant classpath Order

W szczególności, Kiedy próbuję uruchomić moją kompilację mrówek, potrzebuję jej, aby odebrać klasę w słoiku (jaxws-api.jar) zamiast tej samej klasy, która znajduje się w jrze. Obecnie ustawiam ścieżkę klas, aby wyraźnie uwzględniać te słoiki, ale wydaje się, że najpierw odbiera ona jre. To, czego szukam, to jakiś typ ekwiwalentu Order/Export w Eclipse w menu "Build Configuration".

Edytuj: Będę bardziej bezpośredni. Mam kilka klas, które zostały wygenerowane za pomocą CXF 2.1.3. Nazywają javax.xml.ws.Service # getPort (QName, Class, WebServiceFeature ...). Używam wersji Java 1.6.02. Ta metoda nie istnieje w tej klasie w tej wersji. Jednak istnieje on w wersji klasy jaxws (i późniejszych wersjach klasy JRE). Kiedy próbuję wykonać kompilację ant, klasa JRE jest zawsze pobierana najpierw przed wersją jaxws. To sprawia, że ​​moja kompilacja się nie udaje. Jak mogę zmodyfikować ścieżkę klas, aby umieścić środowisko JRE jako ostatnie?

Nie mogę zmienić wersji JRE, więc nie sugeruj jej jako poprawki, chyba że jest to jedyna możliwa.

Odpowiedz

7

Wygląda na to, że musisz użyć ustawienia bootclasspath w zadaniu Ant Antivirus Javac lub Java.

Zawsze można wykonać ant -v, aby uzyskać szczegółowe wyniki kompilacji Ant.

2

Słoiki w ścieżce mrówek są umieszczane w kolejności, w jakiej je zadeklarowano.

1

Miałem ten sam problem z zestawem narzędzi internetowych Google i plikiem API serwletu 3.0. Musiałem upewnić się, że mój jar API serwletów był przed słojami biblioteki GWT. Oto coś, co działało:

<path id="classpath"> 
     <filelist> 
      <file name="${build.input}/__lib__/servlet-api.jar"/> 
     </filelist> 
     <fileset dir="${build.input}/__lib__"> 
      <include name="*.jar" /> 
     </fileset> 
     <fileset dir="${build.input}/WEB-INF/lib"> 
      <include name="*.jar" /> 
     </fileset> 
    </path> 

Uwaga słoik, który musi być pierwszy jest wymieniony jako pierwszy w listy plików, to mogę dodać słoików z innych katalogów. Próbowałem bootclasspath w zaakceptowanej odpowiedzi i nie zadziałało.