【发布时间】:2016-10-18 13:00:25
【问题描述】:
我的文件目录中有以下结构
build/
mainfolder/
ANTFILE_A
subfolder1/
ANTFILE_B
subfolder2/
ANTFILE_C
在主子目录中,我创建了 ANTFILE_A,其中有几个目标调用 ANTFILE_B 内部的目标。在大多数情况下,目标都有效,除了一种我似乎无法理解原因的情况。
在 ANTFILE_A 中我有以下内容:
<target name="clean-subfoler1" description="Cleans subdirectories">
<ant dir="${subfolder1-dir}" antfile="antfile_b.xml" target="clean"/>
</target>
在子文件夹 1 目录中,我有一个带有干净目标的 antfile,它清理了一些其他子目录,例如 subfolder2。当我从 subfolder1 目录中调用 ant clean 目标时,一切正常,没有问题。
当我尝试从我的主文件夹中的 ANTFILE_A 调用上面显示的目标命令时,问题就出现了。
我不断收到这样的问题:
Invalid file: D:\build\mainfolder\subfolder2\antfile_c.xml
所以发生的事情是,由于某种原因,当我从 antfile_a 调用 clean 命令时,它似乎跳过了 subfolder1 目录并从主目录中查找 subfolder2。问题是 subfolder2 嵌套在 subfolder1 下。
现在我已经测试了basedir 是否设置正确,并且对于该特定目标,它实际上正确设置为D:\build\mainfolder\subfolder1。
这就是我设置子目录文件夹的方式
我希望能够让这个目标工作而无需更改子 antfile 中的任何属性。我试过查看inheritAll,但这些都不适合我。
【问题讨论】:
标签: ant