war:inplace

Full name:

org.apache.maven.plugins:maven-war-plugin:3.4.0:inplace

Description:

Generate the webapp in the WAR source directory.

Attributes:

  • Requires a Maven project to be executed.
  • Requires dependency resolution of artifacts in scope: runtime.
  • The goal is thread-safe and supports parallel builds.

Required Parameters

Name Type Since Description
<warSourceDirectory> File - Single directory for extra files to include in the WAR. This is where you place your JSP files.
Default value is: ${basedir}/src/main/webapp.
<webappDirectory> File - The directory where the webapp is built.
Default value is: ${project.build.directory}/${project.build.finalName}.
<workDirectory> File - Directory to unpack dependent WARs into if needed.
Default value is: ${project.build.directory}/war/work.

Optional Parameters

Name Type Since Description
<archive> MavenArchiveConfiguration - The archive configuration to use. See Maven Archiver Reference.
<archiveClasses> boolean 2.0.1 Whether a JAR file will be created for the classes in the webapp. Using this optional configuration parameter will make the compiled classes to be archived into a JAR file in /WEB-INF/lib/ and the classes directory will then be excluded from the webapp /WEB-INF/classes/.
Default value is: false.
<containerConfigXML> File - The path to a configuration file for the servlet container. Note that the file name may be different for different servlet containers. Apache Tomcat uses a configuration file named context.xml. The file will be copied to the META-INF directory.
<delimiters> LinkedHashSet<String> 3.0.0

Set of delimiters for expressions to filter within the resources. These delimiters are specified in the form 'beginToken*endToken'. If no '*' is given, the delimiter is assumed to be the same for start and end.

So, the default filtering delimiters might be specified as:

<delimiters>
  <delimiter>${*}</delimiter>
  <delimiter>@</delimiter>
</delimiters>

Since the '@' delimiter is the same on both ends, we don't need to specify '@*@' (though we can).


<dependentWarExcludes> String - The comma separated list of tokens to exclude when doing a WAR overlay. Default is Overlay.DEFAULT_EXCLUDES
<dependentWarIncludes> String - The comma separated list of tokens to include when doing a WAR overlay. Default is Overlay.DEFAULT_INCLUDES
<escapedBackslashesInFilePath> boolean 2.1-alpha-2 To escape interpolated values with Windows path c:\foo\bar will be replaced with c:\\foo\\bar.
Default value is: false.
<escapeString> String 2.1-beta-1 Expression preceded with this String won't be interpolated. \${foo} will be replaced with ${foo}.
<failOnMissingWebXml> Boolean 2.1-alpha-2 Whether or not to fail the build if the web.xml file is missing. Set to false if you want your WAR built without a web.xml file. This may be useful if you are building an overlay that has no web.xml file.

Starting with 3.1.0, this property defaults to false if the project depends on the Servlet 3.0 API or newer.


<filteringDeploymentDescriptors> boolean 2.1-alpha-2 To filter deployment descriptors. Disabled by default.
Default value is: false.
<filters> List<String> - Filters (property files) to include during the interpolation of the pom.xml.
<includeEmptyDirectories> boolean 2.4 (no description)
Default value is: false.
<nonFilteredFileExtensions> List<String> 2.1-alpha-2 A list of file extensions that should not be filtered. Will be used when filtering webResources and overlays.
<outdatedCheckPath> String 3.3.1 Path prefix for resources that will be checked against outdated content. Starting with 3.3.2, if a value of "/" is specified the entire webappDirectory will be checked, i.e. the "/" signifies "root".
Default value is: WEB-INF/lib/.
<outputFileNameMapping> String 2.1-alpha-1 The file name mapping to use when copying libraries and TLDs. If no file mapping is set (default) the files are copied with their standard names.
<outputTimestamp> String 3.3.0 Timestamp for reproducible output archive entries, either formatted as ISO 8601 yyyy-MM-dd'T'HH:mm:ssXXX or as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).
Default value is: ${project.build.outputTimestamp}.
<overlays> List<Overlay> 2.1-alpha-1 The overlays to apply. Each <overlay> element may contain:
  • id (defaults to currentBuild)
  • groupId (if this and artifactId are null, then the current project is treated as its own overlay)
  • artifactId (see above)
  • classifier
  • type
  • includes (a list of string patterns)
  • excludes (a list of string patterns)
  • filtered (defaults to false)
  • skip (defaults to false)
  • targetPath (defaults to root of webapp structure)

<propertiesEncoding> String 3.4.0 The character encoding to use when reading and writing filtered properties files. If not specified, it will default to the value of the "resourceEncoding" parameter.
<recompressZippedFiles> boolean 2.3 Indicates if zip archives (jar,zip etc) being added to the war should be compressed again. Compressing again can result in smaller archive size, but gives noticeably longer execution time.
Default value is: true.
<resourceEncoding> String 2.3 The encoding to use when copying filtered web resources.
Default value is: ${project.build.sourceEncoding}.
<supportMultiLineFiltering> boolean 2.4 Stop searching endToken at the end of line
Default value is: false.
<useDefaultDelimiters> boolean 3.0.0 Use default delimiters in addition to custom delimiters, if any.
Default value is: true.
<useJvmChmod> boolean 2.4 use jvmChmod rather that cli chmod and forking process
Default value is: true.
<warSourceExcludes> String - The comma separated list of tokens to exclude when copying the content of the warSourceDirectory.
<warSourceIncludes> String - The comma separated list of tokens to include when copying the content of the warSourceDirectory.
Default value is: **.
<webResources> Resource[] - The list of webResources we want to transfer.
<webXml> File - The path to the web.xml file to use.

Parameter Details

<archive>

The archive configuration to use. See Maven Archiver Reference.
  • Type: org.apache.maven.archiver.MavenArchiveConfiguration
  • Required: No

<archiveClasses>

Whether a JAR file will be created for the classes in the webapp. Using this optional configuration parameter will make the compiled classes to be archived into a JAR file in /WEB-INF/lib/ and the classes directory will then be excluded from the webapp /WEB-INF/classes/.
  • Type: boolean
  • Since: 2.0.1
  • Required: No
  • Default: false

<containerConfigXML>

The path to a configuration file for the servlet container. Note that the file name may be different for different servlet containers. Apache Tomcat uses a configuration file named context.xml. The file will be copied to the META-INF directory.
  • Type: java.io.File
  • Required: No

<delimiters>

Set of delimiters for expressions to filter within the resources. These delimiters are specified in the form 'beginToken*endToken'. If no '*' is given, the delimiter is assumed to be the same for start and end.

So, the default filtering delimiters might be specified as:

<delimiters>
  <delimiter>${*}</delimiter>
  <delimiter>@</delimiter>
</delimiters>

Since the '@' delimiter is the same on both ends, we don't need to specify '@*@' (though we can).

  • Type: java.util.LinkedHashSet<java.lang.String>
  • Since: 3.0.0
  • Required: No

<dependentWarExcludes>

The comma separated list of tokens to exclude when doing a WAR overlay. Default is Overlay.DEFAULT_EXCLUDES
  • Type: java.lang.String
  • Required: No

<dependentWarIncludes>

The comma separated list of tokens to include when doing a WAR overlay. Default is Overlay.DEFAULT_INCLUDES
  • Type: java.lang.String
  • Required: No

<escapedBackslashesInFilePath>

To escape interpolated values with Windows path c:\foo\bar will be replaced with c:\\foo\\bar.
  • Type: boolean
  • Since: 2.1-alpha-2
  • Required: No
  • Default: false

<escapeString>

Expression preceded with this String won't be interpolated. \${foo} will be replaced with ${foo}.
  • Type: java.lang.String
  • Since: 2.1-beta-1
  • Required: No

<failOnMissingWebXml>

Whether or not to fail the build if the web.xml file is missing. Set to false if you want your WAR built without a web.xml file. This may be useful if you are building an overlay that has no web.xml file.

Starting with 3.1.0, this property defaults to false if the project depends on the Servlet 3.0 API or newer.

  • Type: java.lang.Boolean
  • Since: 2.1-alpha-2
  • Required: No

<filteringDeploymentDescriptors>

To filter deployment descriptors. Disabled by default.
  • Type: boolean
  • Since: 2.1-alpha-2
  • Required: No
  • Default: false

<filters>

Filters (property files) to include during the interpolation of the pom.xml.
  • Type: java.util.List<java.lang.String>
  • Required: No

<includeEmptyDirectories>

(no description)
  • Type: boolean
  • Since: 2.4
  • Required: No
  • Default: false

<nonFilteredFileExtensions>

A list of file extensions that should not be filtered. Will be used when filtering webResources and overlays.
  • Type: java.util.List<java.lang.String>
  • Since: 2.1-alpha-2
  • Required: No

<outdatedCheckPath>

Path prefix for resources that will be checked against outdated content. Starting with 3.3.2, if a value of "/" is specified the entire webappDirectory will be checked, i.e. the "/" signifies "root".
  • Type: java.lang.String
  • Since: 3.3.1
  • Required: No
  • Default: WEB-INF/lib/

<outputFileNameMapping>

The file name mapping to use when copying libraries and TLDs. If no file mapping is set (default) the files are copied with their standard names.
  • Type: java.lang.String
  • Since: 2.1-alpha-1
  • Required: No

<outputTimestamp>

Timestamp for reproducible output archive entries, either formatted as ISO 8601 yyyy-MM-dd'T'HH:mm:ssXXX or as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).
  • Type: java.lang.String
  • Since: 3.3.0
  • Required: No
  • Default: ${project.build.outputTimestamp}

<overlays>

The overlays to apply. Each <overlay> element may contain:
  • id (defaults to currentBuild)
  • groupId (if this and artifactId are null, then the current project is treated as its own overlay)
  • artifactId (see above)
  • classifier
  • type
  • includes (a list of string patterns)
  • excludes (a list of string patterns)
  • filtered (defaults to false)
  • skip (defaults to false)
  • targetPath (defaults to root of webapp structure)

<propertiesEncoding>

The character encoding to use when reading and writing filtered properties files. If not specified, it will default to the value of the "resourceEncoding" parameter.
  • Type: java.lang.String
  • Since: 3.4.0
  • Required: No

<recompressZippedFiles>

Indicates if zip archives (jar,zip etc) being added to the war should be compressed again. Compressing again can result in smaller archive size, but gives noticeably longer execution time.
  • Type: boolean
  • Since: 2.3
  • Required: No
  • Default: true

<resourceEncoding>

The encoding to use when copying filtered web resources.
  • Type: java.lang.String
  • Since: 2.3
  • Required: No
  • Default: ${project.build.sourceEncoding}

<supportMultiLineFiltering>

Stop searching endToken at the end of line
  • Type: boolean
  • Since: 2.4
  • Required: No
  • Default: false

<useDefaultDelimiters>

Use default delimiters in addition to custom delimiters, if any.
  • Type: boolean
  • Since: 3.0.0
  • Required: No
  • Default: true

<useJvmChmod>

use jvmChmod rather that cli chmod and forking process
  • Type: boolean
  • Since: 2.4
  • Required: No
  • Default: true

<warSourceDirectory>

Single directory for extra files to include in the WAR. This is where you place your JSP files.
  • Type: java.io.File
  • Required: Yes
  • Default: ${basedir}/src/main/webapp

<warSourceExcludes>

The comma separated list of tokens to exclude when copying the content of the warSourceDirectory.
  • Type: java.lang.String
  • Required: No

<warSourceIncludes>

The comma separated list of tokens to include when copying the content of the warSourceDirectory.
  • Type: java.lang.String
  • Required: No
  • Default: **

<webappDirectory>

The directory where the webapp is built.
  • Type: java.io.File
  • Required: Yes
  • Default: ${project.build.directory}/${project.build.finalName}

<webResources>

The list of webResources we want to transfer.
  • Type: org.apache.maven.model.Resource[]
  • Required: No

<webXml>

The path to the web.xml file to use.
  • Type: java.io.File
  • Required: No

<workDirectory>

Directory to unpack dependent WARs into if needed.
  • Type: java.io.File
  • Required: Yes
  • Default: ${project.build.directory}/war/work