2017-02-24 15 views
1

私はJavaプロジェクトをビルドするためにAntを使用していますが、私はAntで増分ビルドを可能にするいくつかの問題があります。アリは増分ビルドできません

<?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のドキュメントを参照してください。

関連する問題