如何在最新的 Ant 命令中使用文件列表作为文件集?
我有一个 build.xml
目标,用于创建 Zip 文件。为了避免在没有更新文件的情况下创建 Zip,我想提前检查更新。 AFAIK,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
属性,而我无法设置该属性,因为源文件不共享基目录。
当然,我可以在压缩之前将所有文件复制到一个公共目录,从而能够使用 fileset
,但我想知道是否有替代解决方案。
我正在使用蚂蚁 1.8.1
I have a target of build.xml
that creates a Zip file. To avoid creating the Zip if no file has been updated, I'd like to check for updates beforehand. AFAIK, uptodate
is the task to use.
Here is the relevant (simplified) script sections:
<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>
However, uptodate
fails because srcfiles
must reference a fileset
, not a filelist
. Still, I can't use a fileset
because it would require a dir
attribute, which I can't set because source files do not share a base directory.
Of course, I could just copy all files to a common directory before zipping them, thus being able to use fileset
, but I was wondering whether there was an alternative solution.
I'm using Ant 1.8.1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不要使用
,而是尝试使用
。
必须是文件集,但
可以是任何资源集合的联合,并且应包含filelist
。我现在无法进行任何测试,但它应该看起来像这样:
希望它对您有用。
Instead of using
<srcfiles>
, try using<srcresources>
.<srcfiles>
must be a fileset, but<srcresource>
can be a union of any collection of resources, and that should include afilelist
.I can't do any test right now, but it should look something like this:
Hope it works for you.