パターンはセットにグループ化でき、後でそのid属性で参照できます。これらはpatternset要素を介して定義され、FileSetまたは暗黙的なFileSetを構成するディレクトリベースのタスクにネストできます。さらに、patternsetはtargetと同じレベルでスタンドアロン要素として、つまりprojectの子として、およびtargetの子として定義できます。
パターンは、ネストされた<include>または<exclude>要素、あるいは以下の属性で指定できます。
| 属性 | 説明 | デフォルト |
|---|---|---|
| includes | 含める必要があるファイルのパターンのカンマ区切りまたはスペース区切りリスト。 | すべてのファイルが含まれます。 |
| includesfile | ファイルの名前。このファイルの各行は、含めるパターンと見なされます。ネストされたincludesfile要素を使用することで、複数のインクルードファイルを指定できます。注意: ファイルが空で、filesetに対して他に定義されたパターンがない場合、すべてのファイルが含まれます。 |
includesを参照してください。 |
| excludes | 除外する必要があるファイルのパターンのカンマ区切りまたはスペース区切りリスト。 | デフォルトの除外を除き、ファイルは除外されません。 |
| excludesfile | ファイルの名前。このファイルの各行は、除外するパターンと見なされます。ネストされたexcludesfile要素を使用することで、複数の除外ファイルを指定できます。 |
excludesを参照してください。 |
| refid | このpatternsetを、他の場所で定義されたpatternsetへの参照にします。指定された場合、他の属性やネストされた要素は許可されません。 |
いいえ |
includeとexclude各要素は、含めるまたは除外するファイルの単一のパターンを定義します。
| 属性 | 説明 | 必須 |
|---|---|---|
| name | 含める/除外するパターン。 | はい |
| if | 指定されたプロパティが設定されている場合にのみ、このパターンを使用します。 | いいえ |
| unless | 指定されたプロパティが設定されていない場合にのみ、このパターンを使用します。 | いいえ |
includesfileとexcludesfileビルドファイルの外側で含めるまたは除外するファイルをリストしたい場合は、includesfile/excludesfile属性または要素を使用する必要があります。属性を使用すると、各タイプのファイルを1つだけ指定できますが、ネストされた要素は複数回指定できます。ネストされた要素は、プロパティの存在をテストするために使用できるif/unless属性もサポートしています。
| 属性 | 説明 | 必須 |
|---|---|---|
| name | 含める/除外するパターンを保持するファイルの名前。 | はい |
| if | 指定されたプロパティが設定されている場合にのみ、このファイルを読み取ります。 | いいえ |
| unless | 指定されたプロパティが設定されていない場合にのみ、このファイルを読み取ります。 | いいえ |
| encoding | ファイルのエンコーディング。Ant 1.10.4以降 | いいえ、デフォルトはプラットフォームのデフォルトです。 |
patternsetPatternsetは、互いにネストして、ネストされたパターンを親のpatternsetに追加できます。
invertApache Ant 1.7.1以降
ネストされたpatternsetは、<invert>要素を使用して反転できます。
<patternset id="non.test.sources"> <include name="**/*.java"/> <exclude name="**/*Test*"/> </patternset>
名前にTestというテキストを含まないすべての.javaファイルに一致するパターンのセットを構築します。このセットは、この機能をサポートするタスクまたはFileSetによって、<patternset refid="non.test.sources"/>を介して参照できます。
includes属性とexcludes属性はカンマまたはスペースで区切られた複数の要素を受け入れますが、ネストされた<include>要素と<exclude>要素は、そのname属性が単一のパターンを保持することを予期していることに注意してください。
ネストされた要素では、プロパティが設定されている場合にのみ要素を使用する必要があること、またはプロパティが設定されていない場合にのみ要素を使用する必要があることを指定するために、if属性とunless属性を使用できます。
たとえば
<patternset id="sources"> <include name="std/**/*.java"/> <include name="prof/**/*.java" if="professional"/> <exclude name="**/*Test*"/> </patternset>
プロパティprofessionalが何らかの値に設定されている場合にのみ、サブディレクトリprof内のファイルを含めます。
次の2つのセット
<patternset includesfile="some-file"/>
と
<patternset> <includesfile name="some-file"/> <patternset/>
は同じです。インクルードパターンは、ファイルsome-fileから1行に1パターンずつ読み込まれます。
<patternset>
<includesfile name="some-file"/>
<includesfile name="${some-other-file}"
if="some-other-file"/>
<patternset/>
プロパティsome-other-fileが指すファイルからも、その名前のプロパティが定義されている場合に、インクルードパターンが読み込まれます。