3 回答

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超3個(gè)贊
只需zipgroupfileset與Ant Zip任務(wù)一起使用
<zip destfile="out.jar">
<zipgroupfileset dir="lib" includes="*.jar"/>
</zip>
這將拉平所有包含的jar庫(kù)的內(nèi)容。

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊
弗拉基米爾的答案是正確的,但我認(rèn)為他的建議暗示將所有罐子重新包裝在一個(gè)大的out.jar中,然后將其作為單個(gè)<zipfileset>或類似的內(nèi)容輸入到Ant Jar任務(wù)中。此兩步方法是不必要的。我不確定這是否與Ant版本有關(guān),但是我有Ant 1.7.1,其<jar>任務(wù)為諒解<zipgroupfileset>,它可以直接提供第三方j(luò)ar的所有內(nèi)容。
<jar destfile="MyApplication.jar">
<zipgroupfileset dir="lib" includes="*.jar" />
<!-- other options -->
<manifest>
<attribute name="Main-Class" value="Main.MainClass" />
</manifest>
</jar>

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
嘗試先將JAR提取到編組目錄中:
<target name="combine-jars">
<mkdir dir="${marshall.dir}"/>
<unzip dest="${marshall.dir}">
<fileset dir="${external.jar.dir}">
<include name="**/*.jar"/>
</fileset>
</unzip>
<jar destfile="${combined.jar}" basedir="${marshall.dir"}>
<delete dir="${marshall.dir}"/>
</target>
這里${marshall.dir}是一個(gè)臨時(shí)目錄,${external.jar.dir}是您保留JAR的位置,并且${combined.jar}是目標(biāo)JAR。
添加回答
舉報(bào)