gpt4 book ai didi

ant - 如何在最新的 Ant 命令中使用文件列表作为文件集?

转载 作者:行者123 更新时间:2023-12-04 03:23:43 25 4
gpt4 key购买 nike

我的目标是build.xml创建一个 Zip 文件。为了避免在没有文件更新的情况下创建 Zip,我想事先检查更新。阿法克,uptodate是要使用的任务。

以下是相关的(简化的)脚本部分:

<filelist id="zip-files">
<file name="C:/main.exe" />
<file name="D:/other.dll" />
</filelist>

<target name="zip" depends="zip-check" unless="zip-uptodate">
<zip destfile="${zip-file}" >
<filelist refid="zip-files" />
</zip>
</target>

<target name="zip-check">
<uptodate property="zip-uptodate"
targetfile="${zip-file}">
<srcfiles refid="zip-files" />
</uptodate>
</target>

但是, uptodate失败,因为 srcfiles必须引用 fileset ,而不是 filelist .尽管如此,我还是不能使用 fileset因为它需要 dir属性,我无法设置,因为源文件不共享基本目录。

当然,我可以在压缩之前将所有文件复制到一个公共(public)目录,这样就可以使用 fileset ,但我想知道是否有替代解决方案。

我正在使用 Ant 1.8.1

最佳答案

而不是使用 <srcfiles> , 尝试使用 <srcresources> . <srcfiles>必须是文件集,但 <srcresource>可以是任何资源集合的联合,并且应该包括 filelist .

我现在不能做任何测试,但它应该看起来像这样:

<filelist id="zip-files">
<file name="C:/main.exe" />
<file name="D:/other.dll" />
</filelist>

<target name="zip" depends="zip-check" unless="zip-uptodate">
<zip destfile="${zip-file}" >
<filelist refid="zip-files" />
</zip>
</target>

<target name="zip-check">

<union id="zip-union">
<filelist refid="zip-files"/>
</union>

<uptodate property="zip-uptodate"
targetfile="${zip-file}">
<srcresources refid="zip-union" />
</uptodate>
</target>

希望对你有效。

关于ant - 如何在最新的 Ant 命令中使用文件列表作为文件集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4564754/

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