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
Ant concat任务对丢失的文件进行投诉_Ant_Concatenation - Fatal编程技术网

Ant concat任务对丢失的文件进行投诉

Ant concat任务对丢失的文件进行投诉,ant,concatenation,Ant,Concatenation,如果缺少a或b,则不会失败。我尝试设置optional=“false”或asis=“true”,但它总是抱怨这些属性不存在。如果您只想在文件丢失时看到“concat”任务中的警告,可以使用替换文件集: <concat destfile="dist/external.js"> <fileset dir="."> <include name="a.js" /> <include name="b.js" /> </files

如果缺少a或b,则不会失败。我尝试设置optional=“false”或asis=“true”,但它总是抱怨这些属性不存在。

如果您只想在文件丢失时看到“concat”任务中的警告,可以使用替换文件集:

<concat destfile="dist/external.js">
  <fileset dir=".">
    <include name="a.js" />
    <include name="b.js" />
  </fileset>
</concat>
但不管怎样,这可能不是你想要的

检查资源集合中是否存在所有文件的一种方法如下所示。注意,您需要将“antlib:org.apache.tools.ant.types.resources.selectors”名称空间添加到项目中,以使用如下所示的名称空间。(这不适用于早于1.7.0的Ant版本。)使用Ant检查资源是否丢失

[concat] /Path/.../b.js does not exist.

对不起,我花了这么长时间才把这个问题定为正确,我自己发现了这个问题,完全忘记了这个问题!似乎文件集和文件列表是非常不同的东西,我相信文件集的性能更好,因为它只是以任何顺序命中文件,不管它们是否存在。Filelist查找每个文件,如果不存在,则会失败。
[concat] /Path/.../b.js does not exist.
<project name="stack_overflow"
         xmlns:rsel="antlib:org.apache.tools.ant.types.resources.selectors">

<filelist id="my.js.files" dir=".">
    <file name="a.js" />
    <file name="b.js" />
</filelist>

<restrict id="missing.js.files">
  <filelist refid="my.js.files"/>
  <rsel:not>
    <rsel:exists/>
  </rsel:not>
</restrict>

<property name="missing.files" refid="missing.js.files" />
<fail message="These files are missing: ${missing.files}">
  <condition>
    <length string="${missing.files}" when="greater" length="0" />
  </condition>
</fail>
<concat destfile="dist/external.js">
    <filelist refid="my.js.files" />
</concat>

</project>
BUILD FAILED
/Path/.../build.xml:17: These files are missing: /Path/.../b.js