# Class War

java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
org.gradle.api.internal.ConventionTask
org.gradle.api.tasks.AbstractCopyTask
org.gradle.api.tasks.bundling.AbstractArchiveTask
org.gradle.api.tasks.bundling.Zip
org.gradle.jvm.tasks.Jar
org.gradle.api.tasks.bundling.Jar
org.gradle.api.tasks.bundling.War

All Implemented Interfaces:
  `Comparable<Task>, ContentFilterable, CopyProcessingSpec, CopySourceSpec, CopySpec, org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.file.copy.CopySpecSource, org.gradle.api.internal.IConventionAware, org.gradle.api.internal.TaskInternal, Named, ExtensionAware, Task, PatternFilterable, Configurable<Task>`

@DisableCachingByDefault(because="Not worth caching") public abstract class War extends Jar
Assembles a WAR archive.

Since:
  0.7

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Named

  `Named.Namer`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `WAR_EXTENSION`
  The war extension.

  ### Fields inherited from class Jar

  `DEFAULT_EXTENSION`

  ### Fields inherited from class Zip

  `ZIP_EXTENSION`

  ### Fields inherited from interface Task

  `TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `War()`
  Creates a new `War`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `classpath(@Nullable Object... classpath)`
  Adds files to the classpath to include in the WAR archive.
  `@Nullable FileCollection`
  `getClasspath()`
  Returns the classpath to include in the WAR archive.
  `abstract ObjectFactory`
  `getObjectFactory()`
  `abstract DirectoryProperty`
  `getWebAppDirectory()`
  Returns the app directory of the task.
  `CopySpec`
  `getWebInf()`
  Returns the web inf.
  `@Nullable File`
  `getWebXml()`
  Returns the `web.xml` file to include in the WAR archive.
  `abstract RegularFileProperty`
  `getWebXmlFile()`
  Returns the `web.xml` file to include in the WAR archive.
  `void`
  `setClasspath(Object classpath)`
  Sets the classpath to include in the WAR archive.
  `void`
  `setClasspath(FileCollection classpath)`
  Sets the classpath to include in the WAR archive.
  `void`
  `setWebXml(@Nullable File webXml)`
  Sets the `web.xml` file to include in the WAR archive.
  `CopySpec`
  `webInf(Closure configureClosure)`
  Adds some content to the `WEB-INF` directory for this WAR archive.
  `CopySpec`
  `webInf(Action<? super CopySpec> configureAction)`
  Adds some content to the `WEB-INF` directory for this WAR archive.

  ### Methods inherited from class Jar

  `manifest`

  ### Methods inherited from class Jar

  `getManifest, getManifestContentCharset, getMetadataCharset, getMetaInf, manifest, metaInf, metaInf, setManifest, setManifestContentCharset, setMetadataCharset`

  ### Methods inherited from class Zip

  `createCopyAction, getCompressor, getEntryCompression, isZip64, setEntryCompression, setZip64`

  ### Methods inherited from class AbstractArchiveTask

  `createCopyActionExecuter, getArchiveAppendix, getArchiveBaseName, getArchiveClassifier, getArchiveExtension, getArchiveFile, getArchiveFileName, getArchiveVersion, getDestinationDirectory, getFileSystemOperations, getReproducibleFileTimestamp, into, into, into, isPreserveFileTimestamps, isReproducibleFileOrder, setPreserveFileTimestamps, setReproducibleFileOrder, useFileSystemPermissions`

  ### Methods inherited from class AbstractCopyTask

  `copy, createRootSpec, dirPermissions, eachFile, eachFile, exclude, exclude, exclude, exclude, expand, expand, filePermissions, filesMatching, filesMatching, filesNotMatching, filesNotMatching, filter, filter, filter, filter, from, from, from, getDirectoryFileTreeFactory, getDirPermissions, getDocumentationRegistry, getDuplicatesStrategy, getExcludes, getFileLookup, getFilePermissions, getFileResolver, getFileSystem, getFilteringCharset, getIncludeEmptyDirs, getIncludes, getInstantiator, getMainSpec, getPropertyFactory, getRootSpec, getSource, include, include, include, include, isCaseSensitive, rename, rename, rename, rename, setCaseSensitive, setDuplicatesStrategy, setExcludes, setFilteringCharset, setIncludeEmptyDirs, setIncludes, with`

  ### Methods inherited from class org.gradle.api.internal.ConventionTask

  `conventionMapping, conventionMapping, getConventionMapping`

  ### Methods inherited from class DefaultTask

  `compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService`

  ### Methods inherited from class org.gradle.api.internal.AbstractTask

  `acceptServiceReferences, appendParallelSafeAction, doNotTrackState, doNotTrackStateIf, getAsDynamicObject, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getLoggingManager, getOnlyIf, getReasonNotToTrackState, getReasonsNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, restoreOnlyIf, restoreTaskActions, service, setImpliesSubProjects`

  ### Methods inherited from class Object

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

  ### Methods inherited from interface Task

  `doNotTrackState, notCompatibleWithConfigurationCache, service`

- ## Field Details

  - ### WAR_EXTENSION

    public static final String WAR_EXTENSION
    The war extension.
    Since:
      0.7
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### War

    public War()
    Creates a new `War`.
    Since:
      0.8

- ## Method Details

  - ### getObjectFactory

    @Inject public abstract ObjectFactory getObjectFactory()
    Specified by:
      `getObjectFactory` in class `AbstractCopyTask`

  - ### getWebInf

    @Internal public CopySpec getWebInf()
    Returns the web inf.
    Since:
      0.9

  - ### webInf

    public CopySpec webInf(@DelegatesTo(CopySpec.class) Closure configureClosure)
    Adds some content to the `WEB-INF` directory for this WAR archive.

    The given closure is executed to configure a `CopySpec`. The `CopySpec` is passed to the closure as its delegate.

    Parameters:
      `configureClosure` - The closure to execute
    Returns:
      The newly created `CopySpec`.
    Since:
      0.9

  - ### webInf

    public CopySpec webInf(Action<? super CopySpec> configureAction)
    Adds some content to the `WEB-INF` directory for this WAR archive.

    The given action is executed to configure a `CopySpec`.

    Parameters:
      `configureAction` - The action to execute
    Returns:
      The newly created `CopySpec`.
    Since:
      3.5

  - ### getClasspath

    @Optional @Classpath public @Nullable FileCollection getClasspath()
    Returns the classpath to include in the WAR archive. Any JAR or ZIP files in this classpath are included in the `WEB-INF/lib` directory. Any directories in this classpath are included in the `WEB-INF/classes` directory.
    Returns:
      The classpath. Returns an empty collection when there is no classpath to include in the WAR.
    Since:
      0.9

  - ### setClasspath

    public void setClasspath(FileCollection classpath)
    Sets the classpath to include in the WAR archive.
    Parameters:
      `classpath` - The classpath. Must not be null.
    Since:
      4.0

  - ### setClasspath

    public void setClasspath(Object classpath)
    Sets the classpath to include in the WAR archive.
    Parameters:
      `classpath` - The classpath. Must not be null.
    Since:
      0.9

  - ### classpath

    public void classpath(@Nullable Object... classpath)
    Adds files to the classpath to include in the WAR archive.
    Parameters:
      `classpath` - The files to add. These are evaluated as per `Project.files(Object...)`
    Since:
      0.9

  - ### getWebXmlFile

    @Incubating @Optional @PathSensitive(NONE) @InputFile public abstract RegularFileProperty getWebXmlFile()
    Returns the `web.xml` file to include in the WAR archive. When `null`, no `web.xml` file is included in the WAR.
    Returns:
      The `web.xml` file property.
    Since:
      9.7.0

  - ### getWebXml

    @ReplacedBy("webXmlFile") public @Nullable File getWebXml()
    Returns the `web.xml` file to include in the WAR archive. When `null`, no `web.xml` file is included in the WAR.
    Returns:
      The `web.xml` file.
    Since:
      0.7

  - ### setWebXml

    public void setWebXml(@Nullable File webXml)
    Sets the `web.xml` file to include in the WAR archive. When `null`, no `web.xml` file is included in the WAR.
    Parameters:
      `webXml` - The `web.xml` file. Maybe null.
    Since:
      0.7

  - ### getWebAppDirectory

    @Internal public abstract DirectoryProperty getWebAppDirectory()
    Returns the app directory of the task. Added to the output web archive by default.

    The `war` plugin sets the default value for all `War` tasks to `src/main/webapp` and adds it as a task input.

    Note, that if the `war` plugin is not applied then this property is ignored. In that case, clients can manually set an app directory as a task input.

    Returns:
      The app directory.
    Since:
      7.1