2017-02-24 149 views
1

我正在使用Ant来构建一个java项目,但是我在启用Ant中的增量构建时遇到了一些问题。蚂蚁不能增量构建

我的build.xml文件非常简单:

<?xml version="1.0"?> 
<project name="fax" basedir="." default="build"> 
    <property name="src.dir" value="src"/> 
    <property name="build.dir" value="build"/> 

    <target name="build" description="Compile source"> 
     <javac destdir="${build.dir}" srcdir="${src.dir}"></javac> 
    </target> 
</project> 

但是,如果我需要多次运行“ant构建”,源文件会被编译多次。看起来增量构建不起作用。

但是,如果我将我的build.xml更改为此,请删除构建目录并直接在源目录中构建。

<?xml version="1.0"?> 
<project name="fax" basedir="." default="build"> 
    <property name="src.dir" value="src"/> 

    <target name="build" description="Compile source"> 
     <javac srcdir="${src.dir}"></javac> 
    </target> 
</project> 

使用这个build.xml我可以看到增量构建的结果。当我多次运行“ant build”时,源文件仅在第一次运行时编译。

我不知道为什么会发生这种情况,以及如何解决这个问题。

回答

0

javac将编译Java源代码树。

Javac将查找源和目标目录中的所有Java源文件。它只会编译那些没有.class的java文件,或者类文件比.java文件早。 这是一种渐进式方法。只编译丢失和更新的文件。

欲了解更多信息,你可以参考javac文件。