我的 Java 项目有两个目录,src/
和tests/
,分别包含生产代码和测试代码。
包结构镜像在每个目录中——如果src/
有包 abc,那么tests/
也有一个等效的包 abc 来自两者的源文件src/
并tests/
编译到目录bin/
中。由于镜像包结构,包 abc 的测试类与 abc 的生产类混合在一起
我希望 Ant 目标从 中的类构建一个 jar,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>