2

如果我使用指向不存在的目录的路径元素定义路径,ant 会如何表现?

<path id="foo.bar">
   <pathelement location="this/might/not/exist/">
</path>

场景是 ant 文件用于多个项目 - 有些有这个额外的文件夹,有些没有。

蚂蚁只是忽略它,还是失败了?

4

1 回答 1

2

这取决于上下文。

当用作javac任务的类路径时,缺少的目录将被忽略:

此任务将从传递给编译器的类路径中删除所有指向不存在的文件/目录的条目。

但是,如果您使用包含不存在目录的路径,例如作为 a 的源copy,您将收到错误消息。例如,这里存在目录“一”和“三”,但不存在“二”:

<path id="mypath">
    <pathelement path="one" />
    <pathelement path="two" />
    <pathelement path="three" />
</path>

<copy todir="dest">
    <path refid="mypath" />
</copy>

BUILD FAILED
/.../build.xml:14: Warning: Could not find resource file ".../two" to copy.

您可以使用 adirset来过滤掉丢失的项目:

<pathconvert property="dirs.list" pathsep="," refid="mypath">
    <map from="${basedir}/" to="" />
</pathconvert>
<dirset id="exists.dirs" dir="." includes="${dirs.list}" />    
<copy todir="dest">
    <dirset refid="exists.dirs" />
</copy>

 [copy] Copied 2 empty directories to 2 empty directories under /.../dest
于 2010-10-15T10:01:20.737 回答