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

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

Method Summary
`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, 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, 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

    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()`