如果我使用指向不存在的目录的路径元素定义路径,ant 会如何表现?
<path id="foo.bar">
<pathelement location="this/might/not/exist/">
</path>
场景是 ant 文件用于多个项目 - 有些有这个额外的文件夹,有些没有。
蚂蚁只是忽略它,还是失败了?
如果我使用指向不存在的目录的路径元素定义路径,ant 会如何表现?
<path id="foo.bar">
<pathelement location="this/might/not/exist/">
</path>
场景是 ant 文件用于多个项目 - 有些有这个额外的文件夹,有些没有。
蚂蚁只是忽略它,还是失败了?
这取决于上下文。
当用作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