11

ソースから jar を構築し、すべての非 Java リソースを含む最小限の build.xml フラグメントを検討してください。

<property name="src.dir" value="src" />

<target name="build">
    <javac destdir="bin">
        <src path="${src.dir}" />
    </javac>
    <copy includeemptydirs="false" todir="bin">
        <fileset dir="${src.dir}">
            <exclude name="**/*.java" />
        </fileset>
    </copy>
    <jar destfile="dist/foo.jar" basedir="bin"/>
</target>

ここで、ソース ディレクトリのリストをサポートする必要があるとします。

<property name="src.dirs" value="src;src-gen" />

上記のスクリプトを変更して実現するにはどうすればよいですか? javac喜んでディレクトリのリストを取得しますが、コピーするには、文字列を除外してファイルセットのリストに変換するか、他の方法を見つける必要があります。

4

4 に答える 4

11

通常、それらをすべてまとめてリストするだけです。

<javac destdir="bin">
    <src path="${src.dir}"/>
    <src path="${src2.dir}"/>
    <src path="${src3.dir}"/>
</javac>

<sourcepath/>属性を試すことができます。私はそれを使用したことはありませんが、さまざまなソース ファイルのパスを定義するために使用できると信じています。

<path id="source.path">
    <pathelement path="${src.dir}"/>
    <pathelement path="${src2.dir}"/>
    <pathelement path="${src4.dir}"/>
</path>

<javac destdir="bin">
    srcpathref="source.path"/>

1 つ目は機能しますが、2 つ目は 100% 確実ではありません。

于 2013-07-12T16:08:55.303 に答える