战争:战争

全名

org.apache.maven.plugins:maven-war-plugin:3.3.2:war

说明

构建一个 WAR 文件。

属性

  • 需要执行一个 Maven 项目。
  • 需要范围内工件的依赖关系解析:compile+runtime.
  • 默认绑定到生命周期阶段package.

必需参数

姓名 类型 自从 描述
<outputDirectory> String - 生成的 WAR 的目录。
默认值为${project.build.directory}
<warSourceDirectory> File - 要包含在 WAR 中的额外文件的单个目录。这是放置 JSP 文件的地方。
默认值为${basedir}/src/main/webapp
<webappDirectory> File - 构建 webapp 的目录。
默认值为${project.build.directory}/${project.build.finalName}
<workDirectory> File - 如果需要,将依赖的 WAR 解压到的目录。
默认值为${project.build.directory}/war/work

可选参数

姓名 类型 自从 描述
<archive> MavenArchiveConfiguration - 要使用的存档配置。请参阅Maven 存档器参考
<archiveClasses> boolean 2.0.1 是否将为 webapp 中的类创建 JAR 文件。使用此可选配置参数将使编译的类归档到 JAR 文件中 /WEB-INF/lib/,然后将类目录从 webapp 中排除/WEB-INF/classes/
默认值为false
<attachClasses> boolean 2.1-alpha-2 类(即 WEB-INF/classes 目录的内容)是否应作为附加工件附加到项目中。

默认情况下,附加工件的分类器是“类”。您可以使用参数更改它 <classesClassifier>someclassifier</classesClassifier>

如果此参数为真,则另一个项目可以通过编写如下内容来依赖这些类:

<dependency>
  <groupId>myGroup</groupId>
  <artifactId>myArtifact</artifactId>
  <version>myVersion</myVersion>
  <classifier>classes</classifier>
</dependency>



默认值为false
<classesClassifier> String 2.1-alpha-2 用于附加类工件的分类器。
默认值为classes
<classifier> String - 添加到生成的 WAR 的分类器。如果给出,工件将改为附件。分类器不会应用于项目的 JAR 文件 - 仅应用于 WAR 文件。
<containerConfigXML> File - servlet 容器的配置文件的路径。请注意,不同 servlet 容器的文件名可能不同。Apache Tomcat 使用名为 context.xml 的配置文件。该文件将被复制到 META-INF 目录。
<delimiters> LinkedHashSet 3.0.0

用于在资源中过滤的表达式的分隔符集。这些定界符以“beginToken*endToken”的形式指定。如果没有给出“*”,则假定开始和结束的分隔符相同。

因此,默认过滤分隔符可以指定为:

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

由于'@'分隔符在两端是相同的,我们不需要指定'@*@'(尽管我们可以)。


<dependentWarExcludes> String - 进行 WAR 覆盖时要排除的逗号分隔的标记列表。默认为Overlay.DEFAULT_EXCLUDES
<dependentWarIncludes> String - 进行 WAR 覆盖时要包含的逗号分隔的标记列表。默认为Overlay.DEFAULT_INCLUDES
<escapeString> String 2.1-beta-1 不会插入此字符串前面的表达式。 ${foo}将替换为${foo}.
<escapedBackslashesInFilePath> boolean 2.1-alpha-2 要使用 Windows 路径转义插值, c:\foo\bar将替换为 c:\foo\bar.
默认值为false
<failOnMissingWebXml> Boolean 2.1-alpha-2 web.xml如果文件丢失,是否使构建失败。false如果您希望在没有web.xml文件的情况下构建 WAR,请设置为。如果您正在构建没有 web.xml 文件的覆盖,这可能很有用。

3.1.0false开始,如果项目依赖于 Servlet 3.0 API 或更高版本,则此属性默认为 。


<filteringDeploymentDescriptors> boolean 2.1-alpha-2 过滤部署描述符。默认禁用。
默认值为false
<filters> List - 在 pom.xml 插值期间要包含的过滤器(属性文件)。
<includeEmptyDirectories> boolean 2.4 (无描述)
默认值为: false
<nonFilteredFileExtensions> List 2.1-alpha-2 不应过滤的文件扩展名列表。将在过滤 webResources 和覆盖时使用。
<outdatedCheckPath> String 3.3.1 将针对过时内容进行检查的资源的路径前缀。从3.3.2开始,如果指定了“/”值,则将检查整个 webappDirectory,即“/”表示“root”。
默认值为WEB-INF/lib/
<outputFileNameMapping> String 2.1-alpha-1 复制库和 TLD 时使用的文件名映射。如果未设置文件映射(默认),则使用标准名称复制文件。
<outputTimestamp> String 3.3.0 可重现输出存档条目的时间戳,格式为 ISO 8601yyyy-MM-dd'T'HH:mm:ssXXX或表示自纪元以来秒数的 int(如SOURCE_DATE_EPOCH)。
默认值为${project.build.outputTimestamp}
<overlays> List 2.1-alpha-1 要应用的叠加层。每个 <overlay> 元素可能包含:
  • id(默认为currentBuild
  • groupId(如果 this 和 artifactId 为 null,则当前项目被视为自己的叠加层)
  • artifactId(见上文)
  • 分类器
  • 类型
  • 包括(字符串模式列表)
  • 排除(字符串模式列表)
  • 过滤(默认为假)
  • 跳过(默认为假)
  • targetPath(默认为 webapp 结构的根目录)

<packagingExcludes> String 2.1-alpha-2 打包前要从 WAR 中排除的标记的逗号分隔列表。此选项可用于实现瘦 WAR 用例。请注意,您可以使用 Java 正则表达式引擎使用表达式 %regex[] 来包含和排除特定模式。提示:阅读 about (?!Pattern)。
<packagingIncludes> String 2.1-beta-1 打包前要包含在 WAR 中的以逗号分隔的令牌列表。默认情况下,所有内容都包括在内。此选项可用于实现瘦 WAR 用例。请注意,您可以使用 Java 正则表达式引擎使用表达式 %regex[] 来包含和排除特定模式。
<primaryArtifact> boolean - 这是否是正在构建的主要工件。false如果您不想将其安装或部署到本地存储库而不是执行中的默认存储库,请设置为。
默认值为true
<recompressZippedFiles> boolean 2.3 指示是否应再次压缩添加到战争中的 zip 档案(jar、zip 等)。再次压缩可能会导致更小的存档大小,但会显着延长执行时间。
默认值为true
<resourceEncoding> String 2.3 复制过滤的 Web 资源时使用的编码。
默认值为${project.build.sourceEncoding}
<skip> boolean 3.0.0 如果需要,您可以跳过插件的执行。不推荐使用它,但有时很方便。
默认值为false
用户属性是maven.war.skip
<supportMultiLineFiltering> boolean 2.4 在行尾停止搜索 endToken
默认值为: false
<useDefaultDelimiters> boolean 3.0.0 除了自定义分隔符(如果有)之外,使用默认分隔符。
默认值为true
<useJvmChmod> boolean 2.4 使用 jvmChmod 而不是 cli chmod 和分叉进程
默认值是: true
<warSourceExcludes> String - 复制 warSourceDirectory 的内容时要排除的逗号分隔的令牌列表。
<warSourceIncludes> String - 复制 warSourceDirectory 的内容时要包含的逗号分隔的令牌列表。
默认值为**
<webResources> Resource[] - 我们要传输的 webResources 列表。
<webXml> File - 要使用的 web.xml 文件的路径。

参数详情

<存档>

要使用的存档配置。请参阅Maven 存档器参考
  • 类型org.apache.maven.archiver.MavenArchiveConfiguration
  • 必需No

<归档类>

是否将为 webapp 中的类创建 JAR 文件。使用此可选配置参数将使编译的类归档到 JAR 文件中 /WEB-INF/lib/,然后将类目录从 webapp 中排除/WEB-INF/classes/
  • 类型boolean
  • 2.0.1
  • 必需No
  • 默认false

<附加类>

类(即 WEB-INF/classes 目录的内容)是否应作为附加工件附加到项目中。

默认情况下,附加工件的分类器是“类”。您可以使用参数更改它 <classesClassifier>someclassifier</classesClassifier>

如果此参数为真,则另一个项目可以通过编写如下内容来依赖这些类:

<dependency>
  <groupId>myGroup</groupId>
  <artifactId>myArtifact</artifactId>
  <version>myVersion</myVersion>
  <classifier>classes</classifier>
</dependency>


  • 类型boolean
  • 2.1-alpha-2
  • 必需No
  • 默认false

<类分类器>

用于附加类工件的分类器。
  • 类型java.lang.String
  • 2.1-alpha-2
  • 必需No
  • 默认classes

<分类器>

添加到生成的 WAR 的分类器。如果给出,工件将改为附件。分类器不会应用于项目的 JAR 文件 - 仅应用于 WAR 文件。
  • 类型java.lang.String
  • 必需No

<containerConfigXML>

servlet 容器的配置文件的路径。请注意,不同 servlet 容器的文件名可能不同。Apache Tomcat 使用名为 context.xml 的配置文件。该文件将被复制到 META-INF 目录。
  • 类型java.io.File
  • 必需No

<分隔符>

用于在资源中过滤的表达式的分隔符集。这些定界符以“beginToken*endToken”的形式指定。如果没有给出“*”,则假定开始和结束的分隔符相同。

因此,默认过滤分隔符可以指定为:

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

由于'@'分隔符在两端是相同的,我们不需要指定'@*@'(尽管我们可以)。

  • 类型java.util.LinkedHashSet
  • 3.0.0
  • 必需No

<dependentWarExcludes>

进行 WAR 覆盖时要排除的逗号分隔的标记列表。默认为Overlay.DEFAULT_EXCLUDES
  • 类型java.lang.String
  • 必需No

<dependentWarIncludes>

进行 WAR 覆盖时要包含的逗号分隔的标记列表。默认为Overlay.DEFAULT_INCLUDES
  • 类型java.lang.String
  • 必需No

<转义字符串>

不会插入此字符串前面的表达式。 ${foo}将替换为${foo}.
  • 类型java.lang.String
  • 2.1-beta-1
  • 必需No

<escapedBackslashesInFilePath>

要使用 Windows 路径转义插值, c:\foo\bar将替换为 c:\foo\bar.
  • 类型boolean
  • 2.1-alpha-2
  • 必需No
  • 默认false

<failOnMissingWebXml>

web.xml如果文件丢失,是否使构建失败。false如果您希望在没有web.xml文件的情况下构建 WAR,请设置为。如果您正在构建没有 web.xml 文件的覆盖,这可能很有用。

3.1.0false开始,如果项目依赖于 Servlet 3.0 API 或更高版本,则此属性默认为 。

  • 类型java.lang.Boolean
  • 2.1-alpha-2
  • 必需No

<过滤部署描述符>

过滤部署描述符。默认禁用。
  • 类型boolean
  • 2.1-alpha-2
  • 必需No
  • 默认false

<过滤器>

在 pom.xml 插值期间要包含的过滤器(属性文件)。
  • 类型java.util.List
  • 必需No

<includeEmptyDirectories>

(没有说明)
  • 类型boolean
  • 2.4
  • 必需No
  • 默认false

<nonFilteredFileExtensions>

不应过滤的文件扩展名列表。将在过滤 webResources 和覆盖时使用。
  • 类型java.util.List
  • 2.1-alpha-2
  • 必需No

<过时的检查路径>

将针对过时内容进行检查的资源的路径前缀。从3.3.2开始,如果指定了“/”值,则将检查整个 webappDirectory,即“/”表示“root”。
  • 类型java.lang.String
  • 3.3.1
  • 必需No
  • 默认WEB-INF/lib/

<输出目录>

生成的 WAR 的目录。
  • 类型java.lang.String
  • 必需Yes
  • 默认${project.build.directory}

<输出文件名映射>

复制库和 TLD 时使用的文件名映射。如果未设置文件映射(默认),则使用标准名称复制文件。
  • 类型java.lang.String
  • 2.1-alpha-1
  • 必需No

<输出时间戳>

可重现输出存档条目的时间戳,格式为 ISO 8601yyyy-MM-dd'T'HH:mm:ssXXX或表示自纪元以来秒数的 int(如SOURCE_DATE_EPOCH)。
  • 类型java.lang.String
  • 3.3.0
  • 必需No
  • 默认${project.build.outputTimestamp}

<叠加层>

要应用的叠加层。每个 <overlay> 元素可能包含:
  • id(默认为currentBuild
  • groupId(如果 this 和 artifactId 为 null,则当前项目被视为自己的叠加层)
  • artifactId(见上文)
  • 分类器
  • 类型
  • 包括(字符串模式列表)
  • 排除(字符串模式列表)
  • 过滤(默认为假)
  • 跳过(默认为假)
  • targetPath(默认为 webapp 结构的根目录)
  • 类型java.util.List
  • 2.1-alpha-1
  • 必需No

<包装不包括>

打包前要从 WAR 中排除的标记的逗号分隔列表。此选项可用于实现瘦 WAR 用例。请注意,您可以使用 Java 正则表达式引擎使用表达式 %regex[] 来包含和排除特定模式。提示:阅读 about (?!Pattern)。
  • 类型java.lang.String
  • 2.1-alpha-2
  • 必需No

<包装包括>

打包前要包含在 WAR 中的以逗号分隔的令牌列表。默认情况下,所有内容都包括在内。此选项可用于实现瘦 WAR 用例。请注意,您可以使用 Java 正则表达式引擎使用表达式 %regex[] 来包含和排除特定模式。
  • 类型java.lang.String
  • 2.1-beta-1
  • 必需No

<主要工件>

这是否是正在构建的主要工件。false如果您不想将其安装或部署到本地存储库而不是执行中的默认存储库,请设置为。
  • 类型boolean
  • 必需No
  • 默认true

<重新压缩压缩文件>

指示是否应再次压缩添加到战争中的 zip 档案(jar、zip 等)。再次压缩可能会导致更小的存档大小,但会显着延长执行时间。
  • 类型boolean
  • 2.3
  • 必需No
  • 默认true

<资源编码>

复制过滤的 Web 资源时使用的编码。
  • 类型java.lang.String
  • 2.3
  • 必需No
  • 默认${project.build.sourceEncoding}

<跳过>

如果需要,您可以跳过插件的执行。不推荐使用它,但有时很方便。
  • 类型boolean
  • 3.0.0
  • 必需No
  • 用户属性maven.war.skip
  • 默认false

<supportMultiLineFiltering>

在行尾停止搜索 endToken
  • 类型boolean
  • 2.4
  • 必需No
  • 默认false

<使用默认分隔符>

除了自定义分隔符(如果有)之外,使用默认分隔符。
  • 类型boolean
  • 3.0.0
  • 必需No
  • 默认true

<使用JvmChmod>

使用 jvmChmod 而不是 cli chmod 和分叉过程
  • 类型boolean
  • 2.4
  • 必需No
  • 默认true

<战争源目录>

要包含在 WAR 中的额外文件的单个目录。这是放置 JSP 文件的地方。
  • 类型java.io.File
  • 必需Yes
  • 默认${basedir}/src/main/webapp

<warSourceExcludes>

复制 warSourceDirectory 的内容时要排除的逗号分隔的令牌列表。
  • 类型java.lang.String
  • 必需No

<warSourceIncludes>

复制 warSourceDirectory 的内容时要包含的逗号分隔的令牌列表。
  • 类型java.lang.String
  • 必需No
  • 默认**

<网络资源>

我们要传输的 webResources 列表。
  • 类型org.apache.maven.model.Resource[]
  • 必需No

<webXml>

要使用的 web.xml 文件的路径。
  • 类型java.io.File
  • 必需No

<webapp目录>

构建 webapp 的目录。
  • 类型java.io.File
  • 必需Yes
  • 默认${project.build.directory}/${project.build.finalName}

<工作目录>

如果需要,将依赖的 WAR 解压到的目录。
  • 类型java.io.File
  • 必需Yes
  • 默认${project.build.directory}/war/work