[英]Difference between setting classpath in build.xml using fileset and pathelement
我有一個構建文件,聲明了如圖所示的類路徑
<path id="compile.classpath">
<fileset dir="${basedir}/lib" includes="**"/>
<fileset dir="${jboss.home}/lib" includes="**"/>
<pathelement path ="${build.classes.dir}"/>
</path>
我試圖尋找的文件,但我無法理解使用 pathelement
。
我知道ID在執行任務時用於引用此類路徑,而fileset包含jar文件。
編輯1: 我的疑問是為什么我們不能使用fileset
來包含類文件代替pathelement
?
最新編輯:
我的疑問是為什么我們不能使用文件集來包含類文件代替pathelement?
如果您使用文件集,那么您將在路徑中添加一組類文件,如下所示:
CLASSPATH=classes/MyClass1.class:classes/MyClass2.class:classes/MyClass3.class:....
當Java期望看到的只是:
CLASSPATH=classes
只有jar(和WAR,EAR等)文件在類路徑中明確列出(Java將打開它們並加載它們的類文件),因此需要在ANT中使用文件集。
這是Oracle文檔:
.jar,.zip或.class文件的類路徑。 每個類路徑應以文件名或目錄結尾,具體取決於您將類路徑設置為:
- 對於包含.class文件的.jar或.zip文件,類路徑以.zip或.jar文件的名稱結尾。
- 對於未命名包中的.class文件,類路徑以包含.class文件的目錄結束。
- 對於命名包中的.class文件,類路徑以包含“root”包的目錄(完整包名中的第一個包)結束。
已經有關於“pathelements”類似的問題在這里 。 從提供的文檔:“如果它的路徑結構類似於您的示例:”類似路徑的結構可以包含對通過嵌套元素的另一個類似路徑的結構(路徑本身就是資源集合)的引用“
<path id="base.path">
<pathelement path="${classpath}"/>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
<pathelement location="classes"/>
</path>
如果是類路徑結構:“path屬性旨在與預定義路徑一起使用”
<classpath>
<pathelement path="${classpath}"/>
<pathelement location="lib/helper.jar"/>
</classpath>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.