Ele*_*ena 10 ant dependencies fileset filelist
我有一个目标,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>
Run Code Online (Sandbox Code Playgroud)
但是,uptodate失败因为srcfiles必须引用a fileset,而不是a filelist.仍然,我不能使用a,fileset因为它需要一个dir属性,我无法设置,因为源文件不共享基目录.
当然,我可以在压缩它们之前将所有文件复制到公共目录,从而能够使用fileset,但我想知道是否有替代解决方案.
我正在使用Ant 1.8.1
Dav*_* W. 15
而不是使用<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>
Run Code Online (Sandbox Code Playgroud)
希望对你有效.
| 归档时间: |
|
| 查看次数: |
4119 次 |
| 最近记录: |