当前的任务是使用 Ant 脚本单独编译 Java 类及其关联的 JUnit“测试”类。 常规类存储在“src”中,而测试类存储在“test/src”中。常规类应编译为“bin”,测试类应编译为“test/bin”。两者都在同一个包中。
我的 Ant 脚本如下所示:
<javac
includeantruntime="false"
classpathref="master-classpath"
destdir="${test.class.build.dir}"
>
<src path="${src.dir}"/>
<src path="${test.class.dir}"/>
<include name="**/*Test*.java"/>
</javac>
运行脚本显示只有一个文件将被编译:
[javac] Compiling 1 source file to C:\Users\AK_Flex\Desktop\HW01\test\bin
但是,测试类及其导入的常规类(已在“bin”中编译)正在被编译并输出到“test/bin”文件夹。 常规类不导入测试类,因此“bin”看起来如所需。 (代码未描述) 有什么办法可以规避编译器的这种行为吗?
最佳答案
由于您希望在两个不同的文件夹中编译类,因此需要两个编译步骤。
<javac includeantruntime="false"
srcdir="src"
destdir="bin"
classpathref="master-classpath">
</javac>
<javac includeantruntime="false"
srcdir="test/src"
destdir="test/bin">
<classpath>
<pathelement location="bin"/>
<path refid="master-classpath"/>
</classpath>
</javac>
关于java - 使用 Javac/Ant 编译 1 个文件也会编译指定文件中的导入文件/类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58760762/