ManifestTask (Apache Ant API)
Date: 2018-07-10

org.apache.tools.ant.taskdefs

## Class ManifestTask

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.ManifestTask

- All Implemented Interfaces:
    java.lang.Cloneable

      public class ManifestTask
      extends Task

  Creates a manifest file for inclusion in a JAR, Ant task wrapper around `Manifest`. This task can be used to write a Manifest file, optionally replacing or updating an existing file.
  Since:
    Ant 1.5

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ManifestTask.Mode` Helper class for Manifest's mode attribute.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `VALID_ATTRIBUTE_CHARS` Specifies the valid characters which can be used in attribute names.

    - ### Fields inherited from class org.apache.tools.ant.Task

      `target, taskName, taskType, wrapper`

    - ### Fields inherited from class org.apache.tools.ant.ProjectComponent

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ManifestTask()` Default constructor

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addConfiguredAttribute(Manifest.Attribute attribute)` Add an attribute to the manifest - it is added to the main section.
    `void` | `addConfiguredSection(Manifest.Section section)` Add a section to the manifest
    `void` | `execute()` Create or update the Manifest when used as a task.
    `void` | `setEncoding(java.lang.String encoding)` The encoding to use for reading in an existing manifest file
    `void` | `setFile(java.io.File f)` The name of the manifest file to create/update.
    `void` | `setFlattenAttributes(boolean b)` Whether to flatten multi-valued attributes (i.e.
    `void` | `setMergeClassPathAttributes(boolean b)` Whether to merge Class-Path attributes.
    `void` | `setMode(ManifestTask.Mode m)` Update policy: either "update" or "replace"; default is "replace".

    - ### Methods inherited from class org.apache.tools.ant.Task

      `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

    - ### Methods inherited from class org.apache.tools.ant.ProjectComponent

      `clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### VALID_ATTRIBUTE_CHARS

          public static final java.lang.String VALID_ATTRIBUTE_CHARS

      Specifies the valid characters which can be used in attribute names. "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ManifestTask

          public ManifestTask()

      Default constructor

  - ### Method Detail

    - #### addConfiguredSection

          public void addConfiguredSection(Manifest.Section section)
                                    throws ManifestException

      Add a section to the manifest
      Parameters:
        `section` - the manifest section to be added
      Throws:
        `ManifestException` - if the section is not valid.

    - #### addConfiguredAttribute

          public void addConfiguredAttribute(Manifest.Attribute attribute)
                                      throws ManifestException

      Add an attribute to the manifest - it is added to the main section.
      Parameters:
        `attribute` - the attribute to be added.
      Throws:
        `ManifestException` - if the attribute is not valid.

    - #### setFile

          public void setFile(java.io.File f)

      The name of the manifest file to create/update. Required if used as a task.
      Parameters:
        `f` - the Manifest file to be written

    - #### setEncoding

          public void setEncoding(java.lang.String encoding)

      The encoding to use for reading in an existing manifest file
      Parameters:
        `encoding` - the manifest file encoding.

    - #### setMode

          public void setMode(ManifestTask.Mode m)

      Update policy: either "update" or "replace"; default is "replace".
      Parameters:
        `m` - the mode value - update or replace.

    - #### setMergeClassPathAttributes

          public void setMergeClassPathAttributes(boolean b)

      Whether to merge Class-Path attributes.
      Parameters:
        `b` - boolean
      Since:
        Ant 1.8.0

    - #### setFlattenAttributes

          public void setFlattenAttributes(boolean b)

      Whether to flatten multi-valued attributes (i.e. Class-Path) into a single one.
      Parameters:
        `b` - boolean
      Since:
        Ant 1.8.0

    - #### execute

          public void execute()
                       throws BuildException

      Create or update the Manifest when used as a task.
      Overrides:
        `execute` in class `Task`
      Throws:
        `BuildException` - if the manifest cannot be written.