[英]How do I change the destination directory of Ant's fileset command?
我有一個Java庫的Ant構建文件。 它看起來像這樣:
<project ... ><target ... >
<jar destfile="C:\path\to\export.jar">
<manifest> ... </manifest>
<fileset dir="C:\path\to\bin" />
<fileset dir="C:\path\to\src" />
<fileset dir="C:\path\to\doc" />
<zipfileset src="C:\path\to\included\library.jar" />
</jar>
</target></project>
唯一的問題是我的JavaDoc被直接導出到生成的jar文件的根目錄中。 實際上,我想要一些可以在<jar>
命令中使用的<copydir>
<jar>
命令。
我想要的結構是這樣的:
export.jar
META-INF
Manifest.MF
com
example
whatever
Blah.class
Blah.java
org
external
somelibrary
Magic.class // contents of the included library jar file
doc
// javadoc files here
目前的結構是:
export.jar
META-INF
Manifest.MF
com
example
whatever
Blah.class
Blah.java
// some javadoc files here
org
external
somelibrary
Magic.class // contents of the included library jar file
// more javadoc files here
我當前的“解決方案”是省略文檔<fileset>
命令,然后,一旦jar導出,進入Windows資源管理器並右鍵單擊 → 7-Zip → 打開存檔 ; 然后我可以放下doc
目錄就好了。 但是,這完全違背了Ant作為完全自動化構建系統的目的。
如果重要,此文件最初由Eclipse與Runnable JAR導出器生成。 但是,我顯然需要修改它來添加源文件等,因為它是一個庫而不是實際上是一個可運行的jar。 我將它導出為可運行的jar,以使Eclipse在所需的庫中打包; 顯然,構建路徑上的庫不能通過標准文件 → 導出 → JAR文件 導出 。
jar實際上就像一個zip文件。 因此,您可以使用zipfileset
。 它的屬性prefix
是您正在尋找的。
zipfileset
命令可以通過src
接受zip文件,也可以通過dir
接受文件系統目錄。 使用后者,您可以添加以下命令:
<zipfileset dir="C:\path\to\doc" prefix="doc" />
另外值得注意的是,zipfileset支持fileset的所有屬性。 因此,如果您只想在特定位置包含單個文件,則可以使用:
<zipfileset file="C:\path\to\doc\file.txt" prefix="doc" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.