簡體   English   中英

在ANT build.xml中,為什么我們不能在java任務中同時使用jar和classpath

[英]In the ANT build.xml, why can't we use both jar and classpath together in the java task

在ANT build.xml中,為什么我們不能在Java任務中同時使用jar和classpath?

除非我理解你的錯誤,否則你應該能夠輕松地做到這一點。 我假設你想在一個類路徑中包含jar,在另一個文件夾中包含一組jar。

你可以這樣做: -

<property name="classpath" value="./WEB-INF/lib"/>
<property name="dependency" value="./libs"/>
<path id = "my-classpath">
        <fileset dir = "${classpath}">
                <include name = "**/**.jar"/>
        </fileset>
        <fileset dir = "${dependency}">
                <include name = "**/**.jar"/>
        </fileset>      
</path>

<javac destdir="${build.dir}">
  <src path="${src.dir}"/>
  <classpath refid="my-classpath"/>
</javac>

編輯

正如你還提到了java任務。 下面的例子應該是你想要的。 如果不是這樣,請告訴我。

 <path id="project.class.path">  
     <pathelement location="somejar.jar"/>  
     <pathelement path="${java.class.path}/"/>  
     <pathelement path="${additional.dependencies}"/>  
 </path>  
 <java jar="test.jar" classpathref="project.class.path" ... />   

我假設你的意思是當你使用jar屬性時, java任務忽略你的類路徑設置。 來自ant java docs

使用jar屬性時,根據Sun的規范,將忽略所有類路徑設置。

並從該鏈接:

使用此選項時,JAR文件是所有用戶類的源,並忽略其他用戶類路徑設置。

所以答案很簡單就是因為它符合規范。

如果這對您來說是一個問題,您可以將相關的jar文件添加到類路徑中,然后使用普通的classname屬性指定要運行的類,或者如果您自己構建jar,則可以添加Class-Path創建清單文件時進入清單文件。 manifestmanifestclasspath任務在那里可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM