我正在尝试编写 ant build 来编译源文件夹,这是我的脚本target用于编译。
<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
file.
请帮我。
据我了解,仅编译修改后的java文件是ant javac任务的默认行为。 Ant 使用 .java 文件及其对应的 .class 文件的时间戳来确定 Java 文件是否需要重新编译。我在很多项目中都使用过它,从来没有遇到过问题。
您可以检查以下几项内容
您的源代码树目录结构是否与您的 Java 包匹配
结构?请参见为什么 ant 总是重新编译我所有的 Java
文件? http://ant.apache.org/faq.html#always-recompiles。这可能是排名第一的原因,因为它出现在常见问题解答中。
我看到你的compile
目标取决于init
目标?什么是init
目标做什么?是否取决于任何clean
目标还是清理 .class 文件?
你的蚂蚁版本是什么?您可以尝试一下不同的ant版本看看是否还有同样的问题?
如果上述方法都不能解决您的问题,那么编译后,您可以手动检查.class文件时间戳并将其与相应.java文件的时间戳进行比较吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)