Ant には<include>
タスクとタスクの両方があることがわかりました<import>
。
説明によると:
含む
別のビルド ファイルを現在のプロジェクトに含めます。
と
輸入
別のビルド ファイルを現在のプロジェクトにインポートします。
では、なぜ一方を他方に使用するのでしょうか。
これが私の実際の問題です:
現在のビルド システムでは、多数の JavaScript を連結してから最小化しています。JavaScript は 12 の異なるディレクトリに配置されており、各ディレクトリからバッチを取得し、それらを 5 つまたは 6 つの超最小化された JavaScript に連結しています。これらのファイルの一部は、複数のスーパー JavaScript にコピーされます。
デバッグを容易にし、ビルドをもう少し柔軟にするために、すべてのファイルをtarget/work/resources2
ディレクトリにコピーし、その下の各サブディレクトリが異なる超最小化された JavaScript を表すようにします。デバッグの目的で、最小化されていないスーパー JavaScript とオリジナルを含めます。ビルド スクリプトは複雑ではありませんが、セクション全体が多くの行を占めています。別の XML ファイルに入れることを考えていた<copy>
ので、全体は次のようになります。
<target name="process-resources"
description="Concatenate and minimize the JavaScripts (using Maven lifecycle names for our targets">
<!-- The following include the copying stuff -->
<here.be.dragons file="${basedir}/reservations.xml"/>
<here.be.dragons file="${basedir}/date.xml"/>
<here.be.dragons file="${basedir}/select.xml"/>
<for param="concat.dir">
<fileset dir="${work.dir]/resources2"/>
<sequential>
<here.I.am.concatenating.and.minimizing/>
</sequential>
</for>
</target>
次の 4 つの可能性があることがわかりました。
<ant/>
コピーを行うファイルを呼び出すために使用します- 使用
<import/>
(ターゲット内に含めることができない可能性があるため、機能しない可能性があります) - 使用
<include/>
(ターゲット内に含めることができない可能性があるため、機能しない可能性があります) - エンティティ インクルードを使用します。
私はこれを行うのに良い時期かもしれませんが、<ant/>
またはを使用することに夢中になったことはありません. <antcall>
エンティティ インクルードのアイデアはうまくいきますが、それはほとんどの人が理解していないことであり、私がやっていることをサポートしなければならない人々を混乱させるのではないかと心配しています。<import>
とはこの<include>
状況では使用できないかもしれませんが、それでも違いは何なのか気になります。