战争:战争

全名

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

说明

构建一个 WAR 文件。

属性

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

必需参数

姓名 类型 自从 描述
<缓存文件> 文件 2.1-alpha-1 包含 webapp 结构缓存的文件。
默认值为${project.build.directory}/war/work/webapp-cache.xml
<输出目录> 细绳 - 生成的 WAR 的目录。
默认值为${project.build.directory}
<战争源目录> 文件 - 要包含在 WAR 中的额外文件的单个目录。这是放置 JSP 文件的地方。
默认值为${basedir}/src/main/webapp
<webapp目录> 文件 - 构建 webapp 的目录。
默认值为${project.build.directory}/${project.build.finalName}
<工作目录> 文件 - 如果需要,将依赖的 WAR 解压到的目录。
默认值为${project.build.directory}/war/work

可选参数

姓名 类型 自从 描述
<存档> Maven存档配置 - 要使用的存档配置。请参阅Maven 存档器参考
<归档类> 布尔值 2.0.1 是否将为 webapp 中的类创建 JAR 文件。使用此可选配置参数将使编译后的类归档到 JAR 文件中,然后将类目录从 webapp 中排除。
默认值为false
<附加类> 布尔值 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
<类分类器> 细绳 2.1-alpha-2 用于附加类工件的分类器。
默认值为
<分类器> 细绳 - 添加到生成的 WAR 的分类器。如果给出,工件将改为附件。分类器不会应用于项目的 JAR 文件 - 仅应用于 WAR 文件。
<containerConfigXML> 文件 - servlet 容器的配置文件的路径。请注意,不同 servlet 容器的文件名可能不同。Apache Tomcat 使用名为 context.xml 的配置文件。该文件将被复制到 META-INF 目录。
<分隔符> 链接哈希集 3.0.0

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

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

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

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


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

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


<过滤部署描述符> 布尔值 2.1-alpha-2 过滤部署描述符。默认禁用。
默认值为false
<过滤器> 列表 - 在 pom.xml 插值期间要包含的过滤器(属性文件)。
<includeEmptyDirectories> 布尔值 2.4 (无描述)
默认值为false
<nonFilteredFileExtensions> 列表 2.1-alpha-2 不应过滤的文件扩展名列表。将在过滤 webResources 和覆盖时使用。
<输出文件名映射> 细绳 2.1-alpha-1 复制库和 TLD 时使用的文件名映射。如果未设置文件映射(默认),则使用标准名称复制文件。
<叠加层> 列表 2.1-alpha-1 要应用的叠加层。每个 <overlay> 元素可能包含:
  • id (默认为currentBuild )
  • groupId(如果 this 和 artifactId 为 null,则当前项目被视为自己的叠加层)
  • artifactId(见上文)
  • 分类器
  • 类型
  • 包括(字符串模式列表)
  • 排除(字符串模式列表)
  • 过滤(默认为假)
  • 跳过(默认为假)
  • targetPath(默认为 webapp 结构的根目录)

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

参数详情

<存档>

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

<归档类>

是否将为 webapp 中的类创建 JAR 文件。使用此可选配置参数将使编译的类归档到 JAR 文件中,然后将类目录从 webapp 中排除。
  • 类型布尔值
  • 2.0.1
  • 要求
  • 默认值

<附加类>

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

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

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

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


  • 类型布尔值
  • 2.1-alpha-2
  • 要求
  • 默认值

<缓存文件>

包含 webapp 结构缓存的文件。
  • 类型java.io.File
  • 2.1-alpha-1
  • 要求
  • 默认${project.build.directory}/war/work/webapp-cache.xml

<类分类器>

用于附加类工件的分类器。
  • 类型java.lang.String
  • 2.1-alpha-2
  • 要求
  • 默认值

<分类器>

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

<containerConfigXML>

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

<分隔符>

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

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

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

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

  • 类型java.util.LinkedHashSet
  • 3.0.0
  • 要求

<dependentWarExcludes>

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

<dependentWarIncludes>

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

<转义字符串>

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

<escapedBackslashesInFilePath>

要使用 Windows 路径转义插值, c:\foo\bar将替换为 c:\foo\bar
  • 类型布尔值
  • 2.1-alpha-2
  • 要求
  • 默认值

<failOnMissingWebXml>

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

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

  • 类型java.lang.Boolean
  • 2.1-alpha-2
  • 要求

<过滤部署描述符>

过滤部署描述符。默认禁用。
  • 类型布尔值
  • 2.1-alpha-2
  • 要求
  • 默认值

<过滤器>

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

<includeEmptyDirectories>

(没有说明)
  • 类型布尔值
  • : 2.4
  • 要求
  • 默认值

<nonFilteredFileExtensions>

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

<输出目录>

生成的 WAR 的目录。
  • 类型java.lang.String
  • 要求
  • 默认值${project.build.directory}

<输出文件名映射>

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

<叠加层>

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

<包装不包括>

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

<包装包括>

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

<主要工件>

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

<重新压缩压缩文件>

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

<资源编码>

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

<跳过>

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

<supportMultiLineFiltering>

在行尾停止搜索 endToken
  • 类型布尔值
  • : 2.4
  • 要求
  • 默认值

<使用缓存>

是否应使用缓存来跨多次运行保存 webapp 的状态。实验性功能默认禁用。
  • 类型布尔值
  • 2.1-alpha-1
  • 要求
  • 默认值

<使用默认分隔符>

除了自定义分隔符(如果有)之外,使用默认分隔符。
  • 类型布尔值
  • 3.0.0
  • 要求
  • 默认值

<使用JvmChmod>

使用 jvmChmod 而不是 cli chmod 和分叉过程
  • 类型布尔值
  • : 2.4
  • 要求
  • 默认值

<战争源目录>

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

<warSourceExcludes>

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

<warSourceIncludes>

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

<网络资源>

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

<webXml>

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

<webapp目录>

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

<工作目录>

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