差分ビルドをサポートするために、既存のantスクリプトを変更しています。そのために、変更されたファイルのみを検索するために、ファイルセットで変更されたセレクターを使用しました。しかし、問題は、フルビルドを実行しているときに、いくつかのプロパティまたはパラメーターに基づいて変更されたフィルターをバイパスする必要があることです。以下に示すように。とにかくそれをすることはありますか?
<project name="test" default="dt" basedir=".">
<target name="dt1">
<copy todir="ant_temp2">
<fileset dir="ant_temp1">
<if>
<equals arg1="${ABC}" arg2="true" />
<then>
<modified update="true" />
</then>
</if>
<exclude name="*.txt"/>
</fileset>
</copy>
</target>
<target name="dt">
<antcall target="dt1">
<param name="ABC" value="true" />
</antcall>
</target>
<target name="dt2">
<antcall target="dt1" />
</target>
</project>
dt
targetを使用して上記のantスクリプトを呼び出す場合modified
はexclude
、fileset
タスクを検討する必要があります。それが使用して呼び出す場合、私はタスクでdt2
のみ考慮する必要があります。exclude
fileset
fileset
ネストされたif
タスクをサポートしていないため、上記のスクリプトを使用できません。そのため、これを行う別の方法を探しています。これを行うためのいくつかの方法を提案してください。
PS:同じコピータスクで2つのターゲットを作成したくありません。1つはインクルードmodified
とexclude
インを使用しfileset
、もう1つは。のみを使用するターゲットexclude
です。