蚂蚁 - 从罐
问题描述:
我的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
目录,以便您可以使用它们并用测试版本覆盖它们。
实测值替代了如何使用蚂蚁排除模式这里要做到这一点(没有单独的测试目录):http://alvinalexander.com/blog/post/java/how-exclude-files-classes-compile-java-project -蚂蚁 – Brian