1

複数のパッケージに散在する複数のファイルがあります。ファイルを 1 つずつロードし、ANT を使用して操作を実行する必要がありますが、試行するたびに 1 つのファイルしかロードされません。たとえば。com.abc.one.Onecom.bcd.two.Twoの2 つのクラスがあります。次のスクリプトは、両方のファイル名を出力しますが、最初のファイルのみを両方のループ反復でロードされたファイルとして出力します

<target name="build" description="My Task">
        <for param="file">
                <path>
                        <fileset dir="C:\workspace\AntTest1" includes="**\*.java" />
                </path>
                <sequential>
                <echo message="@{file}" />
                <loadfile property="loadedFile" srcfile="@{file}" />
                <echo message="${loadedFile}" />
                </sequential>
        </for>
</target>

ドキュメントを検索してみましたが、loadfile タスクの使用方法に関する簡潔な説明が見つかりませんでした。これは、ant が不変の文字列を使用しているにもかかわらず、回避策が得られなかったことが原因ではないかと考えました。新しいターゲットを作成してジョブを分割しようとしましたが、それも役に立ちません。どんな助けでも大歓迎です

4

1 に答える 1

1

Ant プロパティは一度しか設定できず、設定後は不変です。

私のAnt時代からしばらく経ちましたが、おそらく次の解決策が機能する可能性があります。ファイルごとに、ファイル名をパラメーターとしてantcall呼び出しを行います。次に、新しいターゲットでファイルをロードし、タスクを実行します。antcall は実行時のパフォーマンスに深刻な影響を与える可能性があることに注意してください。

于 2013-01-14T19:56:09.140 に答える