リソース

ファイルのようなエンティティは、リソースという概念に抽象化できます。リソースの実装は、ファイルのような属性へのアクセスを提供するだけでなく、可能な限り、基になるエンティティからのコンテンツの読み取りや、エンティティへのコンテンツの書き込みの手段を提供する必要があります。リソースの概念は Apache Ant 1.5.2 で導入されましたが、リソースを明示的に使用できるのはAnt 1.7 以降です。

組み込みリソース型

組み込みリソース型は次のとおりです。

resource

基本リソース。他のリソース型はこの基本型から派生します。そのため、そのすべての属性が利用可能ですが、ほとんどの場合、無関係な属性は無視されます。この実装とすべてのリソース実装は、単一要素のリソースコレクションとしても使用できます。

属性 説明 必須
name このリソースの名前 いいえ
exists このリソースが存在するかどうか いいえ。デフォルトは true
lastmodified このリソースの最終変更時刻 いいえ
directory このリソースがディレクトリのようなものであるかどうか いいえ。デフォルトは false
size このリソースのサイズ いいえ
refid この resource を、他の場所で定義された resource への参照にします。指定した場合、他の属性またはネストされた要素は許可されません。 いいえ

file

ローカルファイルシステムの規則を介してアクセス可能なファイルを表します。

属性 説明 必須
file このリソースが表すファイル はい
basedir このリソースのベースディレクトリ。この属性を設定すると、リソースの名前へのアクセスを試みると、この場所を基準としたパスが生成されます。 いいえ
refid この file を、他の場所で定義された file への参照にします。指定した場合、他の属性またはネストされた要素は許可されません。 いいえ

javaresource

Java クラスローダー経由でロード可能なリソースを表します。

属性 説明 必須
name リソースの名前。 はい
classpath リソースを検索するときに使用するクラスパス。 いいえ
classpathref 他の場所で定義された <path> への参照として指定された、リソースを検索するときに使用するクラスパス。 いいえ
loaderRef 指定されたクラスパスから構築された、リソースをロードするために使用されるローダーの名前。 いいえ
parentFirst ネストされたクラスパスを使用するときに、最初に親クラスローダー(親クラスローダーはシステムクラスローダーである可能性が高い)を参照するかどうか。
Ant 1.8.0 以降
いいえ。デフォルトは true
refid この javaresource を、他の場所で定義された javaresource への参照にします。指定した場合、他の属性またはネストされた要素は許可されません。 いいえ

クラスパスは、ネストされたクラスパス要素としても指定できます。ここで、<classpath>パスのような構造です。

javaconstant

Java 定数の値をロードします。javaresourceの特殊なものとして、そのすべての属性とネストされた要素がサポートされています。定数は public static として指定する必要があります。そうしないとロードできません。

属性 説明 必須
name リソースの名前。完全修飾フィールド名として指定する必要があります。 はい
refid この javaconstant を、他の場所で定義された javaconstant への参照にします。指定した場合、他の属性またはネストされた要素は許可されません。 いいえ

これにより、org.acme.Main クラスの定数 VERSION の値が version プロパティにロードされます。そのクラスを見つけるためのクラスパスは、ネストされた classpath 要素を介して提供されます。

<loadresource property="version">
  <javaconstant name="org.acme.Main.VERSION">
    <classpath>
      <pathelement location="${acme.lib.dir}"/>
    </classpath>
  </javaconstant>
</loadresource>

その定数(build.xml)の内容で新しいファイル c:/temp/org.apache.tools.ant.Main.DEFAULT_BUILD_FILENAME を作成します。

<copy todir="c:/temp">
  <javaconstant name="org.apache.tools.ant.Main.DEFAULT_BUILD_FILENAME"/>
</copy>

zipentry

ZIP アーカイブ内のエントリを表します。アーカイブは、archive 属性またはネストされた単一要素のリソースコレクションを使用して指定できます。zipentry は、ネストされた要素としてファイルシステムリソースのみをサポートします。

属性 説明 必須
zipfile このリソースを含む zip ファイル はい。ネストされたリソースコレクションが指定されていない場合。
archive zipfile の別名
name アーカイブされたリソースの名前 はい
encoding zip ファイルのエンコーディング いいえ。デフォルトは JVM のデフォルト文字エンコーディング
refid この propertyresource を、他の場所で定義された propertyresource への参照にします。指定した場合、他の属性またはネストされた要素は許可されません。 いいえ

tarentry

TAR アーカイブ内のエントリを表します。アーカイブは、archive 属性またはネストされた単一要素のリソースコレクションを使用して指定できます。

属性 説明 必須
archive このリソースを含む tar アーカイブ はい。ネストされたリソースコレクションが指定されていない場合。
name アーカイブされたリソースの名前 はい

gzipresource

これはスタンドアロンのリソースではなく、リソースの内容をその場で圧縮する別のリソースのラッパーです。単一要素のリソースコレクションをネストされた要素として指定する必要があります。

bzip2resource

これはスタンドアロンのリソースではなく、リソースの内容をその場で圧縮する別のリソースのラッパーです。単一要素のリソースコレクションをネストされた要素として指定する必要があります。

xzresource

これはスタンドアロンのリソースではなく、リソースの内容をその場で圧縮する別のリソースのラッパーです。単一要素のリソースコレクションをネストされた要素として指定する必要があります。

XZ 圧縮のサポートは、Apache Ant 1.10.1 以降で追加され、Ant ディストリビューションに含まれていない外部ライブラリに依存します。詳細については、ライブラリの依存関係を参照してください。

url

URL を表します。

属性 説明 必須
url 公開する URL これらのいずれか 1 つ
file file: URL として公開するファイル
baseUrl relativePath と組み合わせる必要があるベース URL
relativePath baseUrl と組み合わせた場合に URL を定義する相対パス baseUrl を使用している場合
refid この url を、他の場所で定義された url への参照にします。指定した場合、他の属性またはネストされた要素は許可されません。 いいえ

string

Java 文字列を表します。書き込むことはできますが、一度しか書き込めません。その後、再度書き込むとエラーになります。

属性 説明 必須
value このリソースの値 いいえ
refid この string を、他の場所で定義された string への参照にします。指定した場合、他の属性またはネストされた要素は許可されません。 いいえ

リソースはネストされたテキストもサポートしており、value 属性が設定されていない場合にのみ指定できます。

<string>
    self.log("Ant version =${ant.version}");
</string>

propertyresource

Ant プロパティを表します。

属性 説明 必須
name プロパティ名 はい

リソースコレクション

リソースコレクションは、多数のリソースをグループ化するエンティティの抽象化です。Ant の「レガシー」データ型のいくつかは、リソースコレクションとして動作するように変更されました。

不思議なことに、一部のタスクは、リソースコレクションとして正当に動作することさえあります。

追加の組み込みリソースコレクション

追加の組み込みリソースコレクションは次のとおりです。

resources

参照で使用するように設計された、汎用リソースコレクション。たとえば、サードパーティの Ant タスクが不明なタイプのリソースコレクションを生成した場合でも、<resources> コレクションを介してアクセスできます。このコレクションタイプの 2 番目の用途は、他のリソースコレクションのコンテナーとして、ネストされたコレクションの順序と重複するリソースを保持することです(union と比較してください)。

属性 説明 必須
cache 結果をキャッシュするかどうか。Ant 1.8.0 以降 いいえ。デフォルトは false
refid この resourcecollection を、他の場所で定義された resourcecollection への参照にします。指定した場合、他の属性またはネストされた要素は許可されません。 いいえ

files

ファイルのグループ。これらのファイルは、多数のPatternSet から取得した絶対パターンによって一致します。これらは、ネストされた <patternset> 要素として指定できます。さらに、<files> は暗黙的な PatternSet を保持し、PatternSet のネストされた <include><includesfile><exclude>、および <excludesfile> 要素と、PatternSet の属性を直接サポートします。

ファイルセレクターは、ネストされた要素として使用できます。含めるには、すべてのセレクターでファイルを選択する必要があります。したがって、<files><and> ファイルセレクターコンテナーと同等です。

より簡単に言うと、このタイプは、ベースディレクトリのないfilesetと同等です。注意してください。ベースディレクトリがない場合、ファイルシステムスキャンは、包含および除外パターンのみに基づいています。ファイル名(または任意の)セレクターは、パターンベースの選択に基づいてファイルが含まれたにのみ、スキャンプロセスに影響を与えることができます。

属性 説明 必須
includes 含める必要があるファイルのパターンのコンマ区切りまたはスペース区切りのリスト これらのいずれか少なくとも1つ
includesfile ファイルの名前。このファイルの各行は、包含パターンと見なされます。
excludes 除外する必要があるファイルのパターンのコンマ区切りまたはスペース区切りのリスト いいえ。デフォルトは、defaultexcludesno の場合はデフォルトの除外またはなし
excludesfile ファイルの名前。このファイルの各行は、除外パターンと見なされます。
defaultexcludes デフォルトの除外を使用するかどうか いいえ。デフォルトは true
casesensitive パターンで大文字と小文字が区別されるかどうか いいえ。デフォルトは true
refid このfilesを、他の場所で定義されたfilesへの参照にします。指定した場合、他の属性やネストされた要素は許可されません。 いいえ

restrict

リソースセレクターを使用して、ネストされたリソースコレクションを制限します。

属性 説明 必須
cache 結果をキャッシュするかどうか。無効にするとパフォーマンスに深刻な影響を与える可能性があります。 いいえ。デフォルトは true
refid このrestrictを、他の場所で定義されたrestrictへの参照にします。指定した場合、他の属性やネストされた要素は許可されません。 いいえ
ネストされた要素として指定されたパラメータ

単一のリソースコレクションが必要です。

ネストされたリソースセレクターは、論理ANDで結合され、含まれるリソースを「絞り込む」ために使用されます。これらはファイルセレクターを模倣していますが、当然ながらリソースを対象としています。いくつかの組み込みリソースセレクターは、内部antlib org.apache.tools.ant.types.resources.selectorsで利用可能です。

name

名前でリソースを選択します。

属性 説明 必須
name 標準のAntパターンを使用してテストする名前パターン。 次のうちちょうど1つ
regex 選択するファイルに一致する正規表現。
casesensitive 名前比較で大文字と小文字を区別するかどうか いいえ。デフォルトは true
handledirsep これを指定した場合、マッパーは、一致させるためにリソース名または名前属性の\文字を/として扱います。この属性には、trueまたはfalseを指定できます。Ant 1.8.0以降いいえ。デフォルトは false
exists

存在するリソースを選択します。

date

日付でリソースを選択します。

属性 説明 必須
millis 1970年1月1日からの比較日時(ミリ秒単位) 次のいずれか
datetime フォーマットされた比較日時
pattern 現在のロケールを使用するdatetime属性で使用するSimpleDateFormat互換のパターン いいえ; デフォルトは、USロケールを使用したMM/dd/yyyy hh:mm aです。
granularity ファイルの変更時刻を比較するときに使用するミリ秒単位の猶予時間。これは、すべてのファイルシステムが最後の変更時刻をミリ秒レベルで追跡できるわけではないためです。 いいえ; デフォルトはプラットフォームによって異なります:FATファイルシステム= 2秒。Unix = 1秒。NTFS = 1ミリ秒。
when beforeafterequalのいずれか いいえ; デフォルトはequal
type

型(ファイルまたはディレクトリ)でリソースを選択します。

属性 説明 必須
type filediranyのいずれか(Ant 1.8以降 はい
size

サイズでリソースを選択します。

属性 説明 必須
size 比較するサイズ はい
when equaleqgreatergtlessltge(以上)、ne(等しくない)、le(以下)のいずれか いいえ; デフォルトはequal
instanceof

型でリソースを選択します。

属性 説明 必須
class リソースがインスタンスでなければならないクラス 次のいずれか
type リソースから割り当て可能である必要があるAnt型
uri typeが定義されている必要があるURI いいえ
and

ネストされたすべてのリソースセレクターで選択されている場合、リソースを選択します。

or

少なくとも1つのネストされたリソースセレクターで選択されている場合、リソースを選択します。

not

許可されている単一のネストされたリソースセレクターの選択結果を否定します。

none

ネストされたリソースセレクターによって選択されていない場合、リソースを選択します。

majority

ネストされたリソースセレクターの過半数によって選択されている場合、リソースを選択します。

属性 説明 必須
allowtie (ネストされたリソースセレクターの数が偶数の場合)同数が過半数と見なされるかどうか いいえ。デフォルトは true
compare

ネストされたリソースコンパレーターを使用して、1つ以上の「制御」リソースとの比較に基づいてリソースを選択します。

属性 説明 必須
when 比較(equal / eqgreater / gtless / ltle(以下)、ge(以上)、ne(等しくない))。 いいえ; デフォルトはequal
against 数量詞(all / each / everyany / some、(正確に)onemost / majoritynone)。 いいえ; デフォルトはall
ネストされた要素として指定されたパラメータ

比較を行う対象のリソースは、リソースコレクションを示すネストされた<control>要素を使用して指定する必要があります。

名前空間の設定を想定

rsel="antlib:org.apache.tools.ant.types.resources.selectors"
rcmp="antlib:org.apache.tools.ant.types.resources.comparators"
<restrict>
  <fileset dir="src" includes="a,b,c,d,e,f,g"/>
  <rsel:compare when="le" against="all">
    <control>
      <resource name="d"/>
    </control>
    <rcmp:name/>
  </rsel:compare>
</restrict>

ファイルabc、およびdを選択します。

<project rsel="antlib:org.apache.tools.ant.types.resources.selectors">
    <macrodef name="copyFromPath">
        <attribute name="todir"/>
        <attribute name="refid"/>
        <element name="nested-resource-selectors" optional="yes" implicit="true"/>
        <sequential>
            <mkdir dir="@{todir}" taskname="copyFromPath"/>
            <copy todir="@{todir}" taskname="copyFromPath">
                <restrict>
                    <path refid="@{refid}"/>
                    <rsel:or>
                        <nested-resource-selectors/>
                    </rsel:or>
                </restrict>
                <flattenmapper/>
            </copy>
        </sequential>
    </macrodef>
    <copyFromPath refid="classpath" todir="todir">
        <rsel:name name="log4j.properties"/>
        <rsel:name name="default.properties"/>
    </copyFromPath>
</project>

todirディレクトリを作成し、クラスパス(コンパイル中にすでに使用されている)からファイルlog4j.propertiesdefault.propertiesを(存在する場合は)コピーします。

<project>
    <filelist id="allfiles" dir="${ant.home}/bin" files="ant.cmd,foo.txt,ant.bat,bar.txt,ant"/>
    <restrict id="missingfiles">
        <filelist refid="allfiles"/>
        <rsel:not xmlns:rsel="antlib:org.apache.tools.ant.types.resources.selectors">
            <rsel:exists/>
        </rsel:not>
    </restrict>
    <echo>These files are missed: ${toString:missingfiles}</echo>
</project>

リソースコレクションallfilesは、期待されるファイルのリストを定義します。制限missingfilesは、<not><exists>セレクターを使用して、存在しないすべてのファイルを取得します。最後に、読みやすい形式で取得するために、toString: pathshortcutを使用します:[echo] これらのファイルが見つかりません:....foo.txt;....bar.txt

sort

リソースの自然な順序に従って、または1つ以上のネストされたリソースコンパレーターによって、ネストされたリソースコレクションをソートします。

属性 説明 必須
cache 結果をキャッシュするかどうか。無効にするとパフォーマンスに深刻な影響を与える可能性があります。 いいえ。デフォルトは true
refid このsortを、他の場所で定義されたsortへの参照にします。指定した場合、他の属性やネストされた要素は許可されません。 いいえ
ネストされた要素として指定されたパラメータ

単一のリソースコレクションが必要です。

ソートは、1つ以上のリソースコンパレーターを指定することで制御およびカスタマイズできます。リソースは複数の基準に従ってソートできます。最初に指定したものが「最も外側」で、最後に指定したものが「最も内側」になります。いくつかの組み込みリソースコンパレーターは、内部antlib org.apache.tools.ant.types.resources.comparatorsで利用可能です。

リソースコンパレーター
name

名前でリソースをソートします。

exists

存在によってリソースをソートします。存在しないものは、存在するものよりも「小さい」と見なされます。

date

日付でリソースをソートします。

type

型(ファイルまたはディレクトリ)でリソースをソートします。ディレクトリにはファイルが含まれているため、「大きい」と見なされます。

size

サイズでリソースをソートします。

content

内容でリソースをソートします。

属性 説明 必須
binary 内容をバイナリモードで比較するかどうか。falseの場合、プラットフォーム固有の改行規則に関係なく内容が比較されます。 いいえ。デフォルトは true
reverse

自然なソート順序、または単一のネストされたコンパレーターのソート順序を反転します。

<property name="eol" value="${line.separator}"/>
<pathconvert property="sorted" pathsep="${eol}">
  <sort>
    <tokens>
      <string value="foo bar etc baz"/>
      <stringtokenizer/>
    </tokens>
  </sort>
</pathconvert>

文字列型のfoo bar etc bazのリソースは、stringtokenizerによって4つのトークンに分割されます。これらのトークンはソートされ、sortedbar baz etc fooの値を取得します。

<sort>
  <fileset dir="foo"/>
  <reverse xmlns="antlib:org.apache.tools.ant.types.resources.comparators">
    <date/>
  </reverse>
</sort>

これは、fooからすべてのファイルを取得し、変更日順に逆順でソートします。使用されるリソースコンパレーター(<reverse><date>)は内部antlibにあるため、名前空間を明示的に設定する必要があります。

first

ネストされたリソースコレクションから最初のcountリソースを含めます。これは、たとえば、より大きなコレクションから最初のいくつかの最も古い、最大のなどのリソースを選択するために、sortコレクションと組み合わせて使用​​できます。

属性 説明 必須
count 含めるリソースの数 いいえ; デフォルトは1
cache 結果をキャッシュするかどうか。無効にするとパフォーマンスに深刻な影響を与える可能性があります。 いいえ。デフォルトは true
refid このfirstを、他の場所で定義されたfirstへの参照にします。指定した場合、他の属性やネストされた要素は許可されません。 いいえ
ネストされた要素として指定されたパラメータ

単一のリソースコレクションが必要です。

last

Ant 1.7.1以降

ネストされたリソースコレクションから最後のcountリソースを含めます。これは、たとえば、より大きなコレクションから最後のいくつかの最も古い、最大のなどのリソースを選択するために、sortコレクションと組み合わせて使用​​できます。

属性 説明 必須
count 含めるリソースの数 いいえ; デフォルトは1
cache 結果をキャッシュするかどうか。無効にするとパフォーマンスに深刻な影響を与える可能性があります。 いいえ。デフォルトは true
refid このlastを、他の場所で定義されたlastへの参照にします。指定した場合、他の属性やネストされた要素は許可されません。 いいえ
ネストされた要素として指定されたパラメータ

単一のリソースコレクションが必要です。

allbutfirst

Ant 1.9.5以降

ネストされたリソースコレクションから最初のcountリソースを除くすべての要素を含めます。これは、たとえば、より大きなコレクションから最初のいくつかの最も古い、最大のなどのリソースを除くすべてを選択するために、sortコレクションと組み合わせて使用​​できます。

属性 説明 必須
count 除外するリソースの数 いいえ; デフォルトは1
cache 結果をキャッシュするかどうか。無効にするとパフォーマンスに深刻な影響を与える可能性があります。 いいえ。デフォルトは true
refid このallbutfirstを、他の場所で定義されたallbutfirstへの参照にします。指定した場合、他の属性やネストされた要素は許可されません。 いいえ
ネストされた要素として指定されたパラメータ

単一のリソースコレクションが必要です。

allbutlast

Ant 1.9.5以降

ネストされたリソースコレクションから最後のcountリソースを除くすべての要素を含めます。これは、たとえば、より大きなコレクションから最後のいくつかの最も古い、最大のなどのリソースを除くすべてを選択するために、sortコレクションと組み合わせて使用​​できます。

属性 説明 必須
count 除外するリソースの数 いいえ; デフォルトは1
cache 結果をキャッシュするかどうか。無効にするとパフォーマンスに深刻な影響を与える可能性があります。 いいえ。デフォルトは true
refid このallbutlastを、他の場所で定義されたallbutlastへの参照にします。指定した場合、他の属性やネストされた要素は許可されません。 いいえ
ネストされた要素として指定されたパラメータ

単一のリソースコレクションが必要です。

tokens

ネストされたリソースコレクションから収集されたstringトークンを含めます。TokenFilterでサポートされているのと同じトークナイザーを使用します。このリソースコレクションを創造的に使用することで、sortgrep -cwcwc -lなどのUnix関数の同等のものを実装できます。

属性 説明 必須
encoding ネストされたリソースのエンコーディング いいえ; デフォルトはデフォルトのJVM文字エンコーディングです
cache 結果をキャッシュするかどうか。無効にするとパフォーマンスに深刻な影響を与える可能性があります。 いいえ。デフォルトは true
refid このtokensを、他の場所で定義されたtokensへの参照にします。指定した場合、他の属性やネストされた要素は許可されません。 いいえ
ネストされた要素として指定されたパラメータ
<concat>
  <union>
    <sort>
      <tokens>
        <resources refid="input"/>
        <linetokenizer includedelims="true"/>
      </tokens>
    </sort>
  </union>
</concat>

リソースコレクションinputに対してUnix sort -uを実装します。

集合演算

次のリソースコレクションは、集合演算を実装します

union

ネストされたリソースコレクションの和集合。

唯一サポートされている属性は refid であり、これによりこの union は、他の場所で定義された union への参照になります。指定された場合、他の属性やネストされた要素は許可されません。

intersect

ネストされたリソースコレクションの交差。

唯一サポートされている属性は refid であり、これによりこの intersect は、他の場所で定義された intersect への参照になります。指定された場合、他の属性やネストされた要素は許可されません。

difference

ネストされたリソースコレクションの差分。

以下の属性は、すべての集合演算リソースコレクションに適用されます。

属性 説明 必須
cache 結果をキャッシュするかどうか。無効にするとパフォーマンスに深刻な影響を与える可能性があります。 いいえ。デフォルトは true
refid この difference を、他の場所で定義された difference への参照にします。指定された場合、他の属性やネストされた要素は許可されません。 いいえ
<resources id="A">
    <string value="a"/>
    <string value="b"/>
</resources>
<resources id="B">
    <string value="b"/>
    <string value="c"/>
</resources>
<union id="union"><resources refid="A"/><resources refid="B"/></union>
<intersect id="intersect"><resources refid="A"/><resources refid="B"/></intersect>
<difference id="difference"><resources refid="A"/><resources refid="B"/></difference>
<echo>
  A: ${toString:A}                    = a;b
  B: ${toString:B}                    = b;c

  union     : ${toString:union}       = a;b;c
  intersect : ${toString:intersect}   = b
  difference: ${toString:difference}  = a;c
</echo>

mappedresources

Ant 1.8.0 以降

別のリソースコレクションをラップし、マッパーを使用してネストされたリソースの名前をマップします。

mappedresources がファイルシステムベースのリソースで構成されるリソースコレクションをラップしている場合でも、mappedresources はファイルシステムベースであるとは見なされません。つまり、ファイルシステムベースのリソースのみを許可するタスクで mappedresources を使用することはできません。

属性として指定されたパラメータ
属性 説明 必須
cache 結果をキャッシュするかどうか。有効にするとパフォーマンスが向上する可能性があります。Ant 1.8.1以降 いいえ。デフォルトは false
enablemultiplemappings true の場合、コレクションは特定のソースパスのすべてのマッピングを使用します。false の場合、最初のリソースのみを処理します。Ant 1.8.1以降 いいえ。デフォルトは false です。
refid この mappedresources を、他の場所で定義された mappedresources への参照にします。指定された場合、他の属性やネストされた要素は許可されません。 いいえ
ネストされた要素として指定されたパラメータ

単一のリソースコレクションが必要です。

単一のマッパーを使用して名前をマップできます。マッパーが指定されていない場合(正直なところ意味がありませんが)、アイデンティティマッパーが使用されます。

指定されたディレクトリからターゲットディレクトリにすべてのファイルをコピーし、拡張子として .bak を追加します。これは、copy に直接ネストされた mapper でも実行できることに注意してください。

<copy todir="${target}">
  <mappedresources>
    <fileset dir="${src}"/>
    <globmapper from="*" to="*.bak"/>
  </mappedresources>
</copy>

ファイルであるすべての CLASSPATH エントリを、ファイルシステム構造を保持せずに WEB-INF/lib ディレクトリに追加する WAR アーカイブを作成します。

<war destfile="${output}">
  <mappedresources>
    <restrict>
      <path path="${java.class.path}"/>
      <type type="file"/>
    </restrict>
    <chainedmapper>
      <flattenmapper/>
      <globmapper from="*" to="WEB-INF/lib/*"/>
    </chainedmapper>
  </mappedresources>
</war>

archives

Ant 1.8.0 以降

このリソースコレクションは、任意の数のネストされたリソースを受け入れ、それらのすべてのリソースが ZIP または TAR アーカイブであると想定します。<archives> によって返されるリソースは、ネストされたアーカイブの内容です。

このリソースコレクションは、zip ファミリーのタスクでのみサポートされている zipgroupfileset を一般化したものです。

唯一サポートされている属性は refid であり、これによりこの archives は、他の場所で定義された archives への参照になります。指定された場合、他の属性やネストされた要素は許可されません。

ネストされた要素として指定されたパラメータ

<archives> には、union 自体である <zips> および <tars> の2つのネストされた要素があります。つまり、ネストされた要素として任意の数のリソース(コレクション)を受け入れます。

<zips> のネストされたリソースは ZIP アーカイブとして扱われ、<tars> のネストされたリソースは TAR アーカイブとして扱われます。

クラスパスにあるすべての jar から ${target} にすべてのファイルをコピーします。

<copy todir="${target}">
  <archives>
    <zips>
      <restrict>
        <path path="${java.class.path}"/>
        <name name="*.jar"/>
      </restrict>
    </zips>
  </archives>
</copy>

resourcelist

Ant 1.8.0 以降

このリソースコレクションは、任意の数のネストされたリソースを受け入れ、それらのリソースを読み取り、読み取られた各行のリソースを返します。

行にコロンが含まれている場合、Ant はそれを URL として使用しようとし、失敗した場合(または行にコロンが含まれていない場合)、行の内容を名前とするファイルリソースを返します。

プロパティは各行で展開されます。プロパティの展開によって文字列ではなくリソースオブジェクト(カスタムプロパティヘルパーなどによる)が生成される場合、リソースは直接返されます。

<resourcelist> は、<filelist> を一般化したものです。

属性 説明 必須
encoding ネストされたリソースのエンコーディング いいえ; デフォルトはデフォルトのJVM文字エンコーディングです
basedir 相対ファイル名を解決するために使用されるベースディレクトリ。このリソースコレクションによって作成された FileResources にベースディレクトリを提供するためにも使用されます。Ant 1.10.4以降 いいえ
preserveduplicates この resourcelist が、指定された回数だけすべてのリソースを返すようにします。それ以外の場合、resourcelist は各リソースを、最初に表示された順序で1回だけ返します。Ant 1.10.10以降 いいえ
refid この resourcelist を、他の場所で定義された resourcelist への参照にします。指定された場合、他の属性やネストされた要素は許可されません。 いいえ
ネストされた要素として指定されたパラメータ

<resourcelist> は、ネストされた要素として任意の数のリソース(コレクション)を受け入れます。

さらに、<resourcelist> は、読み取られたリソースが展開される前にフィルタリング/変更するために使用できる、ネストされた <filterchain> 要素をサポートしています。このようなネストされた要素は、filterchain に対応します。

次の例では、実際に到達できるいくつかの代替URLの最初のURLからファイルをコピーします。ファイル mirrors.txt が次のようになっていると仮定します。

    mirrors.txt:
https://best.mirror.example.org/
http://second.best.mirror.example.org/mirror/of/best/
https://yet.another.mirror/
https://the.original.site/
<copy todir="${target}">
  <first>
    <restrict>
      <resourcelist>
        <file file="mirrors.txt"/>
      </resourcelist>
      <exists/>
    </restrict>
  </first>
</copy>