2009-06-02 91 views
5

如何在ant中設置類路徑順序?Ant類路徑訂購

具體來說,當我試圖運行我的ant構建時,我需要它在jar中選擇一個類(jaxws-api.jar)而不是在jre中的同一個類。我目前正在設置類路徑以明確包含那些罐子,但它似乎仍然首先選擇了jre。我正在尋找的是類似於「構建配置」菜單下eclipse中的Order/Export的一些類型。

編輯:我會更明確。我有一些使用CXF 2.1.3生成的類。他們調用javax.xml.ws.Service#getPort(QName,Class,WebServiceFeature ...)。我正在使用Java版本1.6.02。該版本中該類不存在該類。但是,它存在於類的jaxws版本(以及更高版本的JRE類)中。當我嘗試做一個ant構建時,JRE類總是在jaxws版本之前首先被拾取。這使我的編譯失敗。我如何修改我的類路徑以將JRE放在最後?

我無法更改JRE版本,因此請不要將其作爲修補程序提供,除非它是唯一可能的修復程序。

回答

7

看起來您需要使用JavacJava Ant任務中的bootclasspath設置。

您總是可以使用ant -v來獲得詳細的Ant構建輸出。

2

螞蟻類路徑中的Jar按您聲明的順序放置。

1

我的Google web工具包和一個servlet 3.0 API文件有同樣的問題。我需要確保我的servlet API jar在GWT庫jar之前。下面是一些工作:

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

注意,必須首先在文件列表中第一家上市的話,我可以從其他目錄添加瓶子罐子。我在接受的答案中嘗試了bootclasspath,但它不起作用。