2009-06-02 12 views
5

Wie lege ich die Klassenpfad-Reihenfolge in ant fest?Ant-Klassenpfad Auftrag

Insbesondere, wenn ich versuche, meine Ameisen bauen, brauche ich es, um eine Klasse in einem Glas (jaxws-api.jar) statt der gleichen Klasse, die in der JRE ist. Ich setze gerade den Klassenweg, um diese Gläser ausdrücklich einzuschließen, aber es scheint, das jre zuerst noch aufzuheben. Was ich suche, ist eine Art von Äquivalent zu Order/Export in Eclipse unter dem Menü "Build Configuration".

Edit: Ich werde expliziter sein. Ich habe einige Klassen, die mit CXF 2.1.3 generiert wurden. Sie rufen javax.xml.ws.Service # getPort (QName, Class, WebServiceFeature ...) auf. Ich benutze Java Version 1.6.02. Diese Methode existiert in dieser Klasse in dieser Version nicht. Es existiert jedoch in der Jaxws-Version der Klasse (und späteren Versionen der JRE-Klasse). Wenn ich versuche, einen Ameisen-Build zu machen, wird die JRE-Klasse immer zuerst vor der Jaxws-Version abgeholt. Dies führt dazu, dass meine Zusammenstellung fehlschlägt. Wie kann ich meinen Klassenpfad ändern, um die JRE zuletzt zu platzieren?

Ich kann die JRE-Version nicht ändern, also empfehlen Sie bitte nicht, das zu beheben, es sei denn, es ist das einzig mögliche.

Antwort

7

Sieht so aus, als müssten Sie die bootclasspath Einstellung in der Javac oder Java Ant Task verwenden.

Sie können immer ant -v tun, um ausführliche Ausgabe Ihres Ant Build zu erhalten.

2

Gläser im Ameisenklassenpfad werden in der Reihenfolge angeordnet, in der Sie sie deklarieren.

1

Ich hatte das gleiche Problem mit Google Web Toolkit und eine Servlet 3.0 API-Datei. Ich musste sicherstellen, dass mein Servlet-API-Jar bevor die GWT-Bibliothek geladen wurde. Hier ist etwas, das funktioniert:

<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> 

Hinweis das Glas, das zuerst sein muss aufgeführt wird zuerst in einer Dateiliste, dann kann ich hinzufügen, Gläser aus anderen Verzeichnissen. Ich habe den bootclasspath in der angenommenen Antwort versucht und es hat nicht funktioniert.