簡體   English   中英

在Ant jar任務期間創建目錄結構

[英]Create directory structures during Ant jar task

我想創建一個具有以下目錄結構的jar:

thejar.jar/
    classes/ --> where all classes go
    lib/ --> where all dependencies go
    res/ --> where all non-classpath resources go (scripts, etc.)
    META-INF/

這是我的螞蟻任務:

<jar destfile="dist/main/thejar.jar">
    <!-- Create the manifest -->
    <manifest>
        <!-- JAR should be sealed. -->
        <attribute name="Sealed" value="true" />
    </manifest>

    <!-- Copy main build directory to classes/ directory in JAR. -->
    <fileset dir="dist/main/classes" includes="build/main"/>

    <!-- Copy main library directory to lib/ directory in JAR. -->
    <fileset dir="dist/main/lib" includes="lib/main"/>

    <!-- Copy main resources directory to res/ in JAR. -->
    <fileset dir="dist/main/res" includes="res/main"/>
</jar>

如果我正確理解這一點,它應該是:

  • build/main所有構建(.class)文件復制到dist/main/classes
  • 將所有lib/main依賴項復制到dist/main/lib
  • 將所有res/main文件復制到dist/main/res
  • dist/main/* thejar.jarthejar.jar

JAR任務執行沒有錯誤,但當我去查看thejar.jar的內容時,我只看到META-INF /(我上面提到的子目錄都沒有)。

這里發生了什么? 提前致謝!

您希望jar任務將build/main文件復制到jar的dist/main/lib ,但是

<fileset dir="dist/main/classes" includes="build/main"/>

意味着將dist/main/classes/build/main的文件打包到jar文件中。

看一下Ant-Jar任務文檔中的示例:

<jar destfile="${dist}/lib/app.jar">
    <fileset dir="${build}/classes"
             excludes="**/Test.class"
    />
    <fileset dir="${src}/resources"/>
</jar>

(上面的代碼)將$ {build} / classes目錄中的所有文件以及$ {src} / resources目錄中的所有文件一起放入$ {dist} / lib目錄中名為app.jar的文件中。

為了實現您的請求,我認為您可以使用<copy>任務將類,資源和依賴項<copy>到所需的目錄結構中,然后對目錄進行jar操作。

暫無
暫無

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

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