如何在 Ant 中定义一个 dirset,其中包括两个目录:项目的基本目录和一个子目录“test”?
看起来您不能使用“/”、“.”或“”来专门包含 dirset 的根目录。例如,这包括“./test”,但不包括“.”:
<dirset dir="." id="myDirs">
<include name="." />
<include name="test" />
</dirset>
如何在 Ant 中定义一个 dirset,其中包括两个目录:项目的基本目录和一个子目录“test”?
看起来您不能使用“/”、“.”或“”来专门包含 dirset 的根目录。例如,这包括“./test”,但不包括“.”:
<dirset dir="." id="myDirs">
<include name="." />
<include name="test" />
</dirset>
这显然没有意义。一旦根目录进入,测试子目录将包含在其他所有内容中。也许你需要告诉我们什么会消耗这个 dirset 以及你期望它做什么?处理“测试”两次?
根据您的评论,您需要添加根,然后为根中除测试之外的所有内容添加“排除”元素。
或者制作两个 dirset:一个包含不包括所有子项的根目录,另一个只包含测试。
DirSet的文档没有解释这种行为,但以下内容在我的 Ubuntu 15.04 和 ant 版本 1.9.4 上正常工作
<path id="my.two.dirs">
<dirset dir="." id="myDirs1" excludes="*/**" />
<dirset dir="." id="myDirs2" includes="test" />
</path>
这几乎是 bmargulies 在他的回答中发布的内容,但由于我一开始并不理解它,我认为代码示例可能有用。