gpt4 book ai didi

java - 文件列表中每个元素的 Ant zipfileset

转载 作者:行者123 更新时间:2023-11-30 11:27:36 25 4
gpt4 key购买 nike

使用 stock ant,是否可以为文件列表中的每个元素使用一个 zipfileset?我正在寻找一种方法来指定我使用一次的 jar 列表,然后能够将其指定为类路径和要部署到我自己的 jar 中的文件。

这是构建我的发布 jar 并包含所有类文件的最快方法,但它需要将每个 jar 指定为一个 zipfileset

<jar destfile="release.jar">
... my files ...
<zipfileset src="jar/exampleA.jar" includes="**/*.class"/>
<zipfileset src="jar/exampleB.jar" includes="**/*.class"/>
</jar>

我更喜欢这样指定它:

<filelist id="proj.jars" dir="jar">
<file id="exampleA" name="exampleA.jar"/>
<file id="exampleB" name="exampleB.jar"/>
</filelist>

<jar destfile="release.jar">
... my files ...
<!-- for each jar in proj.jars -->
<zipfileset src="${jar}" includes="**/*.class"/>
</jar>

我确实有一个可行的解决方案,但速度要慢得多(慢 4 或 5 倍)

<jar destfile="release.jar">
... my files ...
<restrict>
<name name="**/*.class"/>
<archives>
<zips>
<filelist refid="proj.jars"/>
</zips>
</archives>
</restrict>
</jar>

相关问题可以找here , 但使用 zipgroupfileset 并且不能用于从 zip 文件中排除文件。

最佳答案

使用 restrict/archive/zips 版本需要多长时间有点疯狂。

我们目前的解决方案是将它们解压缩到一个临时目录并通过 zipfileset 包含它们:

<unjar dest="${include-in-jar.tmpdir}">
<patternset><exclude name="**/*.MF"/></patternset>
<path refid="include-in-jar.classpath" />
</unjar>
<war ...>
<zipfileset dir="${include-in-jar.tmpdir}" includes="**/*" />
</war>

这需要 4 秒,而 restrict/archive/zips 需要 40 秒。

关于java - 文件列表中每个元素的 Ant zipfileset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19254265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com