使用 Javac/Ant 编译 1 个文件也会编译指定文件中导入的 file/class
Compiling 1 file with Javac / Ant also compiles imported file/class in specified file
手头的任务是使用 Ant 脚本单独编译 Java classes 及其关联的 JUnit 'Test' classes。
常规 classes 存储在 'src' 中,而测试 classes 存储在 'test/src' 中。常规 classes 应编译为 'bin' 并测试 classes 为 '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
但是,测试class以及它导入的常规class(已在'bin'中编译)正在编译并输出到'test/bin'文件夹。
常规 classes 不导入测试 classes,因此 '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>
手头的任务是使用 Ant 脚本单独编译 Java classes 及其关联的 JUnit 'Test' classes。 常规 classes 存储在 'src' 中,而测试 classes 存储在 'test/src' 中。常规 classes 应编译为 'bin' 并测试 classes 为 '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
但是,测试class以及它导入的常规class(已在'bin'中编译)正在编译并输出到'test/bin'文件夹。 常规 classes 不导入测试 classes,因此 '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>