我正在尝试编写用于编译源文件夹的ant build,这是我的脚本目标用于编译。
<target name="compile" depends="init">
<javac srcdir="${src.dir}" destdir="${classes.dir}" debug="true">
<classpath refid="master-classpath"/>
</javac>
</target>
在我的项目中,我大约有1000个
.java
文件。每当更改单个.java
文件到目标以上时,都倾向于编译所有.java
文件。这使发展非常缓慢。我只想知道有什么方法或代码可以更改任务的行为,以仅编译已修改或更改的.java
文件,而不是所有.java
文件。请帮我。
最佳答案
据我了解,仅编译经过修改的Java文件是ant javac任务的默认行为。 Ant使用.java文件及其对应的.class文件的时间戳来确定是否需要重新编译Java文件。我在许多项目中都使用过它,从来没有问题。
您可以检查以下几件事
结构体?请参阅Why does ant always recompile all my Javafiles?。这可能是数字1的原因,因为它在常见问题解答中。
compile
目标取决于init
目标吗? init
目标有什么作用?它是否取决于任何clean
目标还是清理.class文件?