蚂蚁 - 从罐

问题描述:

我的Java项目有两个目录,src/tests/,其中包含产品代码和测试代码,分别排除我的JUnit测试类。蚂蚁 - 从罐

的封装结构中的每个目录镜像—如果src/具有包A.B.C,然后tests/也具有等效包A.B.C.来自src/tests/的源文件被编译到目录bin/中。由于镜像包结构,包a.b.c的测试类与a.b.c的生产类混合在一起。

我想要一个Ant目标在bin/建立一个罐子,从类,但不包括所有的测试文件。我想通过映射每个文件名tests/a/b/c/D.java==>bin/a/b/c/D.class并从jar中排除映射的文件名来完成此操作。

事情是这样的:

<target ...> 
    <!-- Build a jar that contains the class files which came from --> 
    <!-- source files under src/, but not those which came from --> 
    <!-- source files under tests/ --> 
    <jar ...> 
     <fileset dir="bin"> 
      <!-- EXCLUDE LOGIC --> 
     </fileset> 
    </jar> 
</target> 

最好的解决方案是将您的src文件编译为一个compile目标一bin目录,并编译一个test-compile目标test文件到testbin目录。您在test-compile目标设置为<javac>类路径以包括bin目录和JUnit和嘲讽的罐子。您需要首先将资源复制到bin目录,以便您可以使用它们并用测试版本覆盖它们。

+0

实测值替代了如何使用蚂蚁排除模式这里要做到这一点(没有单独的测试目录):http://alvinalexander.com/blog/post/java/how-exclude-files-classes-compile-java-project -蚂蚁 – Brian