是否可以配置Ant以仅编译已更改的类

时间:2014-03-25 09:27:11

标签: java ant

  1. 有没有办法配置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>
    
  2. 有没有办法评估每个目标的时间?

3 个答案:

答案 0 :(得分:2)

默认情况下,javac只编译已修改的文件,它会检查.class文件的时间戳,并将其检查为早于.java文件。

答案 1 :(得分:2)

来自javac任务的Ant文档:

  

编译Java源代码树。

     

将递归扫描源和目标目录   要编译的Java源文件。只有没有的Java文件   相应的.class文件或类文件的旧版本   .java文件将被编译。

http://ant.apache.org/manual/Tasks/javac.html

答案 2 :(得分:0)

因此,如果您没有删除任何依赖任务中的classes目录,请说“干净” javac任务本身只编译已更改的java文件。它是javac任务提供的开箱即用功能。