## Manifest

### Description

Creates a manifest file.

This task can be used to write a Manifest file, optionally replacing or updating an existing file.

The Ant team regularly gets complaints that this task in generating invalid manifests. By and large, this is not the case: we believe that we are following the specification to the letter. The usual problem is that some third party manifest reader is not following the same specification as well as they think they should; we cannot generate invalid manifest files just because one single application is broken.

Manifests are processed according to the Jar file specification.. Specifically, a manifest element consists of a set of attributes and sections. These sections in turn may contain attributes. Note in particular that this may result in manifest lines greater than 72 bytes being wrapped and continued on the next line.

### Parameters

Attribute | Description | Required
file | the manifest-file to create/update. | Yes
mode | One of "update" or "replace", default is "replace". | No
encoding | The encoding used to read the existing manifest when updating. | No, defaults to UTF-8 encoding.

### Nested elements

#### attribute

One attribute for the manifest file. Those attributes that are not nested into a section will be added to the "Main" section.

Attribute | Description | Required
name | the name of the attribute. | Yes
value | the value of the attribute. | Yes

#### section

A manifest section - you can nest attribute elements into sections.

Attribute | Description | Required
name | the name of the section. | No, if omitted it will be assumed to be the main section.

### Examples

      <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>

Creates or replaces the file MANIFEST.MF. Note that the Built-By attribute will take the value of the Ant property ${user.name}. The same is true for the ${version} and ${TODAY} properties. This example produces a MANIFEST.MF that contains package version identification for the package `common`.

The manifest produced by the above would look like this:

    Manifest-Version: 1.0
    Built-By: bodewig
    Created-By: Apache Ant 1.5alpha

    Name: common
    Specification-Title: Example
    Specification-Vendor: Example Organization
    Implementation-Vendor: Example Corp.
    Specification-Version: 1.1
    Implementation-Version: 1.1 February 19 2002
    Implementation-Title: common

    Name: common/class1.class
    Sealed: false

Copyright © 2001-2004 The Apache Software Foundation. All rights Reserved.