簡體   English   中英

如何更改Ant的fileset命令的目標目錄?

[英]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" />

進一步閱讀: http//ant.apache.org/manual/Types/zipfileset.html

暫無
暫無

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

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