org.apache.tools.ant.taskdefs

## Class War

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.MatchingTask
      - - org.apache.tools.ant.taskdefs.Zip
        - - org.apache.tools.ant.taskdefs.Jar
          - - org.apache.tools.ant.taskdefs.War

- All Implemented Interfaces:
    java.lang.Cloneable, SelectorContainer

      public class War
      extends Jar

  An extension of <jar> to create a WAR archive. Contains special treatment for files that should end up in the `WEB-INF/lib`, `WEB-INF/classes` or `WEB-INF` directories of the Web Application Archive.

  (The War task is a shortcut for specifying the particular layout of a WAR file. The same thing can be accomplished by using the prefix and fullpath attributes of zipfilesets in a Zip or Jar task.)

  The extended zipfileset element from the zip task (with attributes prefix, fullpath, and src) is available in the War task.

  Since:
    Ant 1.2
  See Also:
    `Jar`

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.tools.ant.taskdefs.Jar

      `Jar.FilesetManifestConfig, Jar.StrictMode`

    - ### Nested classes/interfaces inherited from class org.apache.tools.ant.taskdefs.Zip

      `Zip.ArchiveState, Zip.Duplicate, Zip.UnicodeExtraField, Zip.WhenEmpty, Zip.Zip64ModeAttribute`

  - ### Field Summary

    - ### Fields inherited from class org.apache.tools.ant.taskdefs.Zip

      `addedDirs, archiveType, doubleFilePass, duplicate, emptyBehavior, entries, skipWriting, zipFile`

    - ### Fields inherited from class org.apache.tools.ant.taskdefs.MatchingTask

      `fileset`

    - ### 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
    `War()` Constructor for the War Task.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addClasses(ZipFileSet fs)` add files under WEB-INF/classes
    `void` | `addLib(ZipFileSet fs)` add files under WEB-INF/lib/
    `void` | `addWebinf(ZipFileSet fs)` files to add under WEB-INF;
    `protected void` | `cleanUp()` Make sure we don't think we already have a web.xml next time this task gets executed.
    `protected void` | `initZipOutputStream(ZipOutputStream zOut)` override of parent; validates configuration before initializing the output stream.
    `void` | `setNeedxmlfile(boolean needxmlfile)` Set the policy on the web.xml file, that is, whether or not it is needed
    `void` | `setWarfile(java.io.File warFile)` Deprecated. since 1.5.x. Use setDestFile(File) instead
    `void` | `setWebxml(java.io.File descr)` set the deployment descriptor to use (WEB-INF/web.xml); required unless `update=true`
    `protected void` | `zipFile(java.io.File file, ZipOutputStream zOut, java.lang.String vPath, int mode)` Overridden from Zip class to deal with web.xml Here are cases that can arise -not a web.xml file : add -first web.xml : add, remember we added it -same web.xml again: skip -alternate web.xml : warn and skip

    - ### Methods inherited from class org.apache.tools.ant.taskdefs.Jar

      `addConfiguredIndexJars, addConfiguredManifest, addConfiguredService, addMetainf, createEmptyZip, finalizeZipOutputStream, findJarName, getResourcesToAdd, grabFilesAndDirs, reset, setFilesetmanifest, setFlattenAttributes, setIndex, setIndexMetaInf, setJarfile, setManifest, setManifestEncoding, setMergeClassPathAttributes, setStrict, setWhenempty, setWhenmanifestonly, writeIndexLikeList, zipFile`

    - ### Methods inherited from class org.apache.tools.ant.taskdefs.Zip

      `add, addFileset, addParentDirs, addResources, addResources, addZipfileset, addZipGroupFileset, execute, executeMain, getComment, getCreateUnicodeExtraFields, getCurrentExtraFields, getDestFile, getEncoding, getFallBackToUTF8, getLevel, getNonFileSetResourcesToAdd, getPreserve0Permissions, getResourcesToAdd, getUseLanguageEnodingFlag, getZip64Mode, grabNonFileSetResources, grabResources, hasUpdatedFile, isAddingNewFiles, isCompress, isEmpty, isFirstPass, isInUpdateMode, logWhenWriting, selectDirectoryResources, selectFileResources, selectResources, setBasedir, setComment, setCompress, setCreateUnicodeExtraFields, setCurrentExtraFields, setDestFile, setDuplicate, setEncoding, setFallBackToUTF8, setFile, setFilesonly, setKeepCompression, setLevel, setPreserve0Permissions, setRoundUp, setUpdate, setUseLanguageEncodingFlag, setZip64Mode, setZipfile, zipDir, zipDir, zipDir, zipFile`

    - ### Methods inherited from class org.apache.tools.ant.taskdefs.MatchingTask

      `add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addFilename, addMajority, addModified, addNone, addNot, addOr, addPresent, addSelector, addSize, addType, appendSelector, createExclude, createExcludesFile, createInclude, createIncludesFile, createPatternSet, getDirectoryScanner, getImplicitFileSet, getSelectors, hasSelectors, selectorCount, selectorElements, setCaseSensitive, setDefaultexcludes, setExcludes, setExcludesfile, setFollowSymlinks, setIncludes, setIncludesfile, setProject, XsetIgnore, XsetItems`

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

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

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

- - ### Constructor Detail

    - #### War

          public War()

      Constructor for the War Task.

  - ### Method Detail

    - #### setWarfile

          @Deprecated
          public void setWarfile(java.io.File warFile)

      Deprecated. since 1.5.x. Use setDestFile(File) instead
      Deprecated name of the file to create -use `destfile` instead.
      Parameters:
        `warFile` - the destination file

    - #### setWebxml

          public void setWebxml(java.io.File descr)

      set the deployment descriptor to use (WEB-INF/web.xml); required unless `update=true`
      Parameters:
        `descr` - the deployment descriptor file

    - #### setNeedxmlfile

          public void setNeedxmlfile(boolean needxmlfile)

      Set the policy on the web.xml file, that is, whether or not it is needed
      Parameters:
        `needxmlfile` - whether a web.xml file is needed. Default: true

    - #### addLib

          public void addLib(ZipFileSet fs)

      add files under WEB-INF/lib/
      Parameters:
        `fs` - the zip file set to add

    - #### addClasses

          public void addClasses(ZipFileSet fs)

      add files under WEB-INF/classes
      Parameters:
        `fs` - the zip file set to add

    - #### addWebinf

          public void addWebinf(ZipFileSet fs)

      files to add under WEB-INF;
      Parameters:
        `fs` - the zip file set to add

    - #### initZipOutputStream

          protected void initZipOutputStream(ZipOutputStream zOut)
                                      throws java.io.IOException,
                                             BuildException

      override of parent; validates configuration before initializing the output stream.
      Overrides:
        `initZipOutputStream` in class `Jar`
      Parameters:
        `zOut` - the zip output stream
      Throws:
        `java.io.IOException` - on output error
        `BuildException` - if invalid configuration

    - #### zipFile

          protected void zipFile(java.io.File file,
                     ZipOutputStream zOut,
                     java.lang.String vPath,
                     int mode)
                          throws java.io.IOException

      Overridden from Zip class to deal with web.xml Here are cases that can arise -not a web.xml file : add -first web.xml : add, remember we added it -same web.xml again: skip -alternate web.xml : warn and skip
      Overrides:
        `zipFile` in class `Zip`
      Parameters:
        `file` - the file to add to the archive
        `zOut` - the stream to write to
        `vPath` - the name this entry shall have in the archive
        `mode` - the Unix permissions to set.
      Throws:
        `java.io.IOException` - on output error

    - #### cleanUp

          protected void cleanUp()

      Make sure we don't think we already have a web.xml next time this task gets executed.
      Overrides:
        `cleanUp` in class `Jar`
      See Also:
        `Zip.cleanUp()`