Manifest

説明

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 以降
flattenAttributestrue に設定しない限り、Manifest 仕様に違反する複数の Class-Path 属性を含む Manifest になる可能性があります。
いいえ。デフォルトは false です。
flattenAttributes セクションに複数回発生する属性 (これは Class-Path 属性でのみ発生します) を単一の属性にマージするかどうか。Ant 1.8.0 以降 いいえ。デフォルトは false です。

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

attribute

Manifest ファイルの属性の 1 つ。セクションにネストされていない属性はメインセクションに追加されます。

属性 説明 必須
name 属性の名前は、正規表現 [A-Za-z0-9][A-Za-z0-9-_*]* に一致する必要があります。 はい
value 属性の値。 はい

section

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