如何在ant中的javac任务中排除源?
我的build.xml中有以下内容:
...
这主要做我想要的,除了(如评论所说)我不想要文件
${src.dir}/com/foo/bar/quux/dontwant/
将由此任务编译(但我确实希望在${src.dir}/com/foo/bar/quux/
下编译其他所有内容这个任务)。
我是一个完整的antn00b,文档对我没什么帮助。 我看到有几个地方,它说有各种排除/排除元素/属性,但我能想到的每个变化都没有效果或导致错误,如“ blah不支持’exclude’属性”。
有几个人建议使用
。 这不符合我的任务指定方式。 trashgod的答案链接到本页的第六个例子,它让我了解了如何重构我的任务规范。
看起来我的问题与我指定源文件的方式有关。 而不是在
使用
元素,如下所示:
我转而使用带有路径的单个
,然后使用一组
元素,如下所示:
这看起来function相同,但与
的使用兼容:
(实际上,我很惊讶首先在那里工作的东西。)
从我的实验中,您不应该包含要排除的文件的完整路径。 这个不起作用:
(...> (...)
但是这个确实:
(...> (...)
尝试
(...> (...)
我不确定其余的,但
嵌套元素应该在Javac
任务中起作用。 见第六个例子 。
附录:模式,包括**
表示法,在基于目录的任务中讨论。
... ...
如果您尝试排除Java类但Ant仍在尝试编译它们,那么这可能是由于您的代码中引用了这些类。
如果A.java有对B.java的引用,并且您尝试排除B.java,那么编译A.java将要求编译B.java。
这是Java中接口的一个原因,因此您可以编译接口而无需编译实现。
不会遵守{source.dir}
下的try文件夹“test”