DependentSet

リソース間の任意の依存関係を管理するタスク。

説明

dependset タスクは、ソースのセットとターゲット ファイルのセットを比較します。ソースのいずれかがターゲット ファイルよりも最近変更された場合、ターゲット ファイルはすべて削除されます。

ソース ファイルとターゲット ファイルは、入れ子になった リソースのコレクション によって指定されます。ソースはどのようなタイプの資源でも構いませんが、ターゲットはファイルに限定されます。少なくともソースのセットとターゲットのセットが必要です。

ワイルドカードの include または exclude パターンを使用したい場合で、欠落ファイルは問題ない場合は FileSet を使用します。ファイルが存在しないことを期限切れとして考慮したい場合は FileList を使用します。ソースまたはターゲットの FileList に存在しないファイルがあると、ターゲット ファイルはすべて削除されます。

DependSet は、アルゴリズムで決定できないか、または決定できない依存関係を取り込むのに役立ちます。たとえば、<style> タスクは、ソース XML ファイルと XSLT スタイルシートのみをターゲット ファイルと比較して、ソースのスタイルを変更するかどうかを判断します。dependset を使用すると、この依存関係のチェックを、DTD または XSD ファイルや、メインのスタイルシートによってインポートされる他のスタイルシートに拡張できます。

パラメータ

属性 説明 必須
verbose タスクに削除されたすべてのターゲット ファイルとその削除理由を一覧表示します。 いいえ

入れ子になった要素として指定されるパラメータ

sources

<sources> 要素は Union であり、任意のリソースのコレクションをネストできます。Apache Ant 1.7 以降

srcfileset

ネストされた <srcfileset> 要素は、FileSet を指定します。この FileSet に含まれているすべてのファイルは、すべての <targetfileset> ファイルセットと <targetfilelist> ファイルリストに含まれているすべてのファイルと比較されます。複数の <srcfileset> ファイルセットを指定できます。

srcfilelist

ネストされた <srcfilelist> 要素は、FileList を指定します。このファイルリストに含まれているすべてのファイルは、すべての <targetfileset> ファイルセットと <targetfilelist> ファイルリストに含まれているすべてのファイルと比較されます。複数の <srcfilelist> ファイルリストを指定できます。

targets

Ant 1.7 以降

<targets> 要素は Path であり、したがってファイルシステムベースのリソースをすべて含めることができます。

targetfileset

ネストされた <targetfileset> 要素は、FileSet を指定します。このファイルセットに含まれているすべてのファイルは、すべての <srcfileset> ファイルセットと <sourcefilelist> ファイルリストに含まれているすべてのファイルと比較され、古いものがあればすべて削除されます。複数の <targetfileset> ファイルセットを指定できます。

targetfilelist

ネストされた <targetfilelist> 要素は、FileList を指定します。このファイルリストに含まれているすべてのファイルは、すべての <srcfileset> ファイルセットと <sourcefilelist> ファイルリストに含まれているすべてのファイルと比較され、古いものがあればすべて削除されます。複数の <targetfilelist> ファイルリストを指定できます。

次の場合に ${output.dir} ディレクトリの派生 HTML ファイルを削除する

  1. ソース XML ファイルの DTD と比較して古い場合
  2. 共通 DTD(メイン DTD によってインポートされる)
  3. 従属する XSLT スタイルシート(メインのスタイルシートによってインポートされる)、または
  4. ビルドファイル
<dependset>
  <srcfilelist
      dir   = "${dtd.dir}"
      files = "paper.dtd,common.dtd"/>
  <srcfilelist
      dir   = "${xsl.dir}"
      files = "common.xsl"/>
  <srcfilelist
      dir   = "${basedir}"
      files = "build.xml"/>
  <targetfileset
      dir      = "${output.dir}"
      includes = "**/*.html"/>
</dependset>

上記の例のソースのいずれも存在しない場合、すべてのターゲットファイルも削除されます。代わりに欠落したソースを無視するには、ソース用のファイルリストではなくファイルセットを使用してください。