如何在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”