簡體   English   中英

使用fileset和pathelement在build.xml中設置classpath之間的區別

[英]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.

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