使用 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>