如果我定义一个带有指向不存在目录的pathelement的路径,ant的行为如何?
<path id="foo.bar">
<pathelement location="this/might/not/exist/">
</path>
场景是ant文件用于多个项目 - 有些项目有这个额外的文件夹,有些没有。
蚂蚁会忽略它,还是会失败?
答案 0 :(得分:2)
这取决于具体情况。
当用作javac
任务的类路径时,将忽略缺少的目录:
此任务将删除所有指向不存在的条目 它传递给编译器的类路径中的文件/目录。
但是如果您使用包含不存在的目录的路径(例如copy
的来源),则会出错。
例如,这里存在“one”和“three”目录,但“two”不存在:
<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.
您可以使用dirset
过滤掉丢失的项目:
<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