Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javac/Ant编译1文件也会编译指定文件中的导入文件/类_Java_Junit_Ant_Javac - Fatal编程技术网

使用Javac/Ant编译1文件也会编译指定文件中的导入文件/类

使用Javac/Ant编译1文件也会编译指定文件中的导入文件/类,java,junit,ant,javac,Java,Junit,Ant,Javac,手头的任务是使用Ant脚本分别编译Java类及其关联的JUnit“Test”类。 常规类存储在'src'中,而测试类存储在'test/src'中。常规类应编译为“bin”,测试类应编译为“test/bin”。两者都在同一个包裹里 我的Ant脚本如下所示: <javac includeantruntime="false" classpathref="master-classpath" destdir="${test.class.build.dir}"

手头的任务是使用Ant脚本分别编译Java类及其关联的JUnit“Test”类。 常规类存储在'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>
但是,测试类及其导入的常规类(已在“bin”中编译)正在编译并输出到“test/bin”文件夹。 常规类不导入测试类,因此“bin”看起来与所需的一样。(未描述代码)
有没有办法避免编译器的这种行为?

因为您希望在两个不同的文件夹中编译类,所以需要两个编译步骤



是的,
javac
会编译命名类所依赖的类(如有必要)。在本文中,“如有必要”是什么意思?有没有一种方法可以向编译器显示已经编译过的文件,这样它就不会再编译它了?也许
-implicit:none
会有所帮助,基于
javac
:“如果您希望能够引用其他源文件中的类型,但不希望编译它们,请使用-implicit选项。”。关于您的评论:
-classpath
?@Jordan181是的,将已编译的文件放在类路径上。谢谢。现在它可以正常工作了,我执行了两个编译步骤,但在第二步中缺少已编译文件的生成目录路径。
    [javac] Compiling 1 source file to C:\Users\AK_Flex\Desktop\HW01\test\bin