如何在UpdateAnt命令中将文件列表用作文件集?
我有一个创建Zip文件的目标如何在UpdateAnt命令中将文件列表用作文件集?,ant,dependencies,filelist,fileset,Ant,Dependencies,Filelist,Fileset,我有一个创建Zip文件的目标build.xml。为了避免在没有更新文件的情况下创建Zip,我想事先检查更新。好的,uptodate是要使用的任务 以下是相关(简化)脚本部分: <filelist id="zip-files"> <file name="C:/main.exe" /> <file name="D:/other.dll" /> </filelist> <target name="zip" depends="zip-check"
build.xml
。为了避免在没有更新文件的情况下创建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>
但是,Update
失败,因为srcfiles
必须引用文件集,而不是文件列表。但是,我不能使用文件集
,因为它需要dir
属性,而我无法设置该属性,因为源文件不共享基本目录
当然,我可以在压缩文件之前将所有文件复制到一个公共目录,这样就可以使用文件集
,但我想知道是否有其他解决方案
我正在使用Ant 1.8.1,而不是使用
,请尝试使用
<代码>
必须是一个文件集,但
可以是任何资源集合的联合,并且应该包括一个文件列表
我现在不能做任何测试,但它应该是这样的:
<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>
希望对你有用。有用,谢谢。对不起,我不知道如何将这个话题标记为“已解决”。答案的“票数”下面有一个白色的复选框。单击复选标记,它将变为绿色,表示问题已得到回答。