0

我的 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>
4

1 回答 1

2

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

于 2013-07-11T23:09:58.923 回答