Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在UpdateAnt命令中将文件列表用作文件集?_Ant_Dependencies_Filelist_Fileset - Fatal编程技术网

如何在UpdateAnt命令中将文件列表用作文件集?

如何在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"

我有一个创建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" 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>


希望对你有用。

有用,谢谢。对不起,我不知道如何将这个话题标记为“已解决”。答案的“票数”下面有一个白色的复选框。单击复选标记,它将变为绿色,表示问题已得到回答。