Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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
Java ant不断地重新编译_Java_Ant_Build - Fatal编程技术网

Java ant不断地重新编译

Java ant不断地重新编译,java,ant,build,Java,Ant,Build,我希望ant能够找出何时不重新编译最新的文件——不幸的是,这种情况一直在发生。我的生成目标仅包含: <javac srcdir="configuration" destdir="${build_env}"> <compilerarg value="-Xlint"/> </javac> 但是它们确实存在,并且可以在“/blah/build/com/blah/configuration/…”目录中找到 如何修复此问题?我在过去看到过这样的情况:类定义在与.j

我希望ant能够找出何时不重新编译最新的文件——不幸的是,这种情况一直在发生。我的生成目标仅包含:

<javac srcdir="configuration" destdir="${build_env}">
  <compilerarg value="-Xlint"/>
</javac>
但是它们确实存在,并且可以在“/blah/build/com/blah/configuration/…”目录中找到


如何修复此问题?

我在过去看到过这样的情况:类定义在与.java文件中声明的包不同的位置

例如,如果我们在com/stackoverflow/ant/error中查看一个名为AJavaFile.java的文件。最好将包定义为:

package com.stackoverflow.ant.error;

或者,javac编译器会将它放在与包声明预期不同的位置。

也有同样的混淆问题

您应该尝试运行ant的文件位置的基本路径,而不仅仅是其中的相对目录

当包与您的“构建”中的包不完全匹配时,javac似乎会从您指定包的方式开始,试图正确地确定包。因此,它只是汇编了这些情况下的所有内容。如果你仔细想想,这是有道理的,尽管它有一些缺点。已构建内容中的路径需要与要编译的内容完全匹配。当它没有被告知从写入“build”目录的同一个基本目录开始时,它就无法向前看并解析完整路径

如果您的代码位于/blah/build/com/blah/configuration/。。。然后试试看

<javac srcdir="/blah/" destdir="${build_env}">
  ...
</javac>

...


...

请参见“谢谢”。是的,这个链接也解决了我的问题。
<javac srcdir="/blah/" destdir="${build_env}">
  ...
</javac>
<javac destdir="${build_env}">
  <src path="blah/"/>
  ...
</javac>