有没有办法配置ANT只编译已更改的模块?
我的建议是在构建属性中指定更改模块,并根据属性文件内容执行。例如,如果使用低于目标进行编译。
<target name="compile-source" depends="init" description="compile the source ">
<javac destdir="${target.classes.dir}" debug="true">
<src path="${source.java.dir}/module1"/>
<src path="${source.java.dir}/module2"/>
<classpath refid="libs"/>
</javac>
</target>
有没有办法评估每个目标的时间?
答案 0 :(得分:2)
默认情况下,javac只编译已修改的文件,它会检查.class文件的时间戳,并将其检查为早于.java文件。
答案 1 :(得分:2)
来自javac任务的Ant文档:
编译Java源代码树。
将递归扫描源和目标目录 要编译的Java源文件。只有没有的Java文件 相应的.class文件或类文件的旧版本 .java文件将被编译。
答案 2 :(得分:0)
因此,如果您没有删除任何依赖任务中的classes目录,请说“干净” javac任务本身只编译已更改的java文件。它是javac任务提供的开箱即用功能。