Package org.gradle.api.tasks.bundling

## 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`, `ExtensionAware`, `Task`, `PatternFilterable`, `Configurable<Task>`

      @DisableCachingByDefault(because="Not worth caching")
      public class War
      extends Jar

  Assembles a WAR archive.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.gradle.api.Task

      `Task.Namer`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `WAR_EXTENSION` |

    - ### Fields inherited from class org.gradle.jvm.tasks.Jar

      `DEFAULT_EXTENSION`

    - ### Fields inherited from class org.gradle.api.tasks.bundling.Zip

      `ZIP_EXTENSION`

    - ### Fields inherited from interface org.gradle.api.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()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `classpath​(Object... classpath)` | Adds files to the classpath to include in the WAR archive.
    `FileCollection` | `getClasspath()` | Returns the classpath to include in the WAR archive.
    `ObjectFactory` | `getObjectFactory()` |
    `DirectoryProperty` | `getWebAppDirectory()` | Returns the app directory of the task.
    `CopySpec` | `getWebInf()` |
    `File` | `getWebXml()` | 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​(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 org.gradle.api.tasks.bundling.Jar

      `manifest`

    - ### Methods inherited from class org.gradle.jvm.tasks.Jar

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

    - ### Methods inherited from class org.gradle.api.tasks.bundling.Zip

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

    - ### Methods inherited from class org.gradle.api.tasks.bundling.AbstractArchiveTask

      `createCopyActionExecuter, getAppendix, getArchiveAppendix, getArchiveBaseName, getArchiveClassifier, getArchiveExtension, getArchiveFile, getArchiveFileName, getArchiveName, getArchivePath, getArchiveVersion, getBaseName, getClassifier, getDestinationDir, getDestinationDirectory, getExtension, getVersion, into, into, into, isPreserveFileTimestamps, isReproducibleFileOrder, setAppendix, setArchiveName, setBaseName, setClassifier, setDestinationDir, setExtension, setPreserveFileTimestamps, setReproducibleFileOrder, setVersion`

    - ### Methods inherited from class org.gradle.api.tasks.AbstractCopyTask

      `copy, createRootSpec, eachFile, eachFile, exclude, exclude, exclude, exclude, expand, expand, filesMatching, filesMatching, filesNotMatching, filesNotMatching, filter, filter, filter, filter, from, from, from, getDirectoryFileTreeFactory, getDirMode, getDocumentationRegistry, getDuplicatesStrategy, getExcludes, getFileLookup, getFileMode, getFileResolver, getFileSystem, getFilteringCharset, getIncludeEmptyDirs, getIncludes, getInstantiator, getMainSpec, getRootSpec, getSource, include, include, include, include, isCaseSensitive, rename, rename, rename, rename, setCaseSensitive, setDirMode, setDuplicatesStrategy, setExcludes, setFileMode, setFilteringCharset, setIncludeEmptyDirs, setIncludes, with`

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

      `conventionMapping, conventionMapping, getConventionMapping`

    - ### Methods inherited from class org.gradle.api.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, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService`

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

      `appendParallelSafeAction, doNotTrackState, getAsDynamicObject, getConvention, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, setImpliesSubProjects`

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

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

    - ### Methods inherited from interface org.gradle.api.Task

      `doNotTrackState, getConvention, notCompatibleWithConfigurationCache`

- - ### Field Detail

    - #### WAR_EXTENSION

          public static final String WAR_EXTENSION

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### War

          public War()

  - ### Method Detail

    - #### getObjectFactory

          @Inject
          public ObjectFactory getObjectFactory()

      Overrides:
        `getObjectFactory` in class `AbstractCopyTask`

    - #### getWebInf

          @Internal
          public CopySpec getWebInf()

    - #### webInf

          public CopySpec webInf​(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`.

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

          @Nullable
          @Optional
          @Classpath
          public 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.

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

    - #### classpath

          public void classpath​(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...)`

    - #### getWebXml

          @Nullable
          @Optional
          @PathSensitive(NONE)
          @InputFile
          public 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.

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

    - #### getWebAppDirectory

          @Incubating
          @Internal
          public 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