Manifest ファイルを作成します。
このタスクは Manifest ファイルの書き込み、既存ファイルの置き換え、更新に使用できます。
Manifest は Jar ファイル仕様に従って処理されます。具体的には、Manifest 要素は属性とセクションのセットで構成されます。これらのセクションは、順番に属性を含んでいる可能性があります。特に、これによって、72 バイトを超える Manifest 行が改行され、次の行に続けられる可能性があることに注意してください。
Apache Ant チームは、このタスクが不正な Manifest を生成するという苦情をよく受け付けます。概じて、それは事実ではありません。私たちは仕様を正確に従っていると信じています。一般的な問題は、一部のサードパーティ製の Manifest リーダが、考えるほど同じ仕様に従っていないことです。単一のアプリケーションが壊れているという理由だけで、無効な Manifest ファイルを生成することはできません。Java ME ランタイムには、特に問題があるようです。
Ant がランタイムと互換性のない Manifest を生成していることに気付いた場合は、ビルドされた Manifest を取り、必要な方法で修正し、手作業で作成された Manifest に引き渡す JAR の作成には zip タスクを使用するよう切り替えてください。
| 属性 | 説明 | 必須 |
|---|---|---|
| file | 作成/更新するマニフェスト ファイル。 | はい |
| mode | updateまたは replaceのいずれか。 |
いいえ。デフォルトは replaceです。 |
| encoding | 更新時に既存の Manifest の読み取りに使用されるエンコーディング。タスクは Manifest の書き込み時に常に UTF-8 を使用します。 | いいえ。デフォルトは UTF-8 エンコーディングです。 |
| mergeClassPathAttributes | 異なる Manifest (更新する場合) で見つかった Class-Path 属性をマージするかどうか。falseの場合、最新の Manifest の属性のみが保持されます。Ant 1.8.0 以降。 flattenAttributes も trueに設定しない限り、Manifest 仕様に違反する複数の Class-Path 属性を含む Manifest になる可能性があります。 |
いいえ。デフォルトは falseです。 |
| flattenAttributes | セクションに複数回発生する属性 (これは Class-Path 属性でのみ発生します) を単一の属性にマージするかどうか。Ant 1.8.0 以降。 |
いいえ。デフォルトは falseです。 |
Manifest ファイルの属性の 1 つ。セクションにネストされていない属性はメインセクションに追加されます。
| 属性 | 説明 | 必須 |
|---|---|---|
| name | 属性の名前は、正規表現 [A-Za-z0-9][A-Za-z0-9-_*]*に一致する必要があります。 |
はい |
| value | 属性の値。 | はい |
Manifest セクション。セクションに attribute 要素をネストできます。
| 属性 | 説明 | 必須 |
|---|---|---|
| name | セクションの名前。 | いいえ、メインセクションのデフォルトになります |
MANIFEST.MFファイルを新しく作成または置き換えます。Built-By属性には、Antプロパティ${user.name}の値が代入されます。${version}および${TODAY}プロパティについても同様です。この例では、パッケージcommonのパッケージバージョンIDを含むMANIFEST.MFが作成されます。
<manifest file="MANIFEST.MF">
<attribute name="Built-By" value="${user.name}"/>
<section name="common">
<attribute name="Specification-Title" value="Example"/>
<attribute name="Specification-Version" value="${version}"/>
<attribute name="Specification-Vendor" value="Example Organization"/>
<attribute name="Implementation-Title" value="common"/>
<attribute name="Implementation-Version" value="${version} ${TODAY}"/>
<attribute name="Implementation-Vendor" value="Example Corp."/>
</section>
<section name="common/class1.class">
<attribute name="Sealed" value="false"/>
</section>
</manifest>
上記で作成されたマニフェストは次のように表示されます
Manifest-Version: 1.0 Built-By: bodewig Created-By: Apache Ant 1.9 Name: common Specification-Title: Example Specification-Vendor: Example Organization Implementation-Vendor: Example Corp. Specification-Version: 1.2 Implementation-Version: 1.2 September 10, 2013 Implementation-Title: common Name: common/class1.class Sealed: false