maven-war-plugin 是 Maven 中用于构建 Web 应用程序的插件。它将项目打包成一个 Web 应用程序归档(WAR)文件。以下是 maven-war-plugin 的一些常用参数及其说明:
常用参数
-
warSourceDirectory
- 描述:指定包含 Web 应用程序内容(如 HTML、CSS、JavaScript 文件)的目录。
- 默认值:
${basedir}/src/main/webapp - 示例:
<configuration> <warSourceDirectory>src/main/webapp</warSourceDirectory> </configuration>
-
webXml
- 描述:指定自定义的
web.xml文件路径。 - 默认值:
${basedir}/src/main/webapp/WEB-INF/web.xml - 示例:
<configuration> <webXml>src/main/webapp/WEB-INF/custom-web.xml</webXml> </configuration>
- 描述:指定自定义的
-
outputDirectory
- 描述:指定生成的 WAR 文件的输出目录。
- 默认值:
${project.build.directory} - 示例:
<configuration> <outputDirectory>${project.build.directory}/custom-output</outputDirectory> </configuration>
-
warName
- 描述:指定生成的 WAR 文件的名称(不包括扩展名)。
- 默认值:
${project.build.finalName} - 示例:
<configuration> <warName>my-custom-war</warName> </configuration>
-
archiveClasses
- 描述:是否将编译后的类文件归档到
WEB-INF/lib目录中。 - 默认值:
false - 示例:
<configuration> <archiveClasses>true</archiveClasses> </configuration>
- 描述:是否将编译后的类文件归档到
-
attachClasses
- 描述:是否将编译后的类文件作为一个独立的 JAR 附加到项目中。
- 默认值:
false - 示例:
<configuration> <attachClasses>true</attachClasses> </configuration>
-
classifier
- 描述:为生成的 WAR 文件指定一个分类符。
- 默认值:无
- 示例:
<configuration> <classifier>beta</classifier> </configuration>
-
packagingExcludes
- 描述:指定打包时要排除的文件或目录的模式。
- 默认值:无
- 示例:
<configuration> <packagingExcludes>**/excluded-file.txt</packagingExcludes> </configuration>
-
packagingIncludes
- 描述:指定打包时要包含的文件或目录的模式。
- 默认值:无
- 示例:
<configuration> <packagingIncludes>**/*.html</packagingIncludes> </configuration>
-
failOnMissingWebXml
- 描述:是否在缺少
web.xml文件时失败。 - 默认值:
true - 示例:
<configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration>
- 描述:是否在缺少
完整示例
以下是一个完整的 maven-war-plugin 配置示例:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
<configuration>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
<webXml>src/main/webapp/WEB-INF/custom-web.xml</webXml>
<outputDirectory>${project.build.directory}/custom-output</outputDirectory>
<warName>my-custom-war</warName>
<archiveClasses>true</archiveClasses>
<attachClasses>true</attachClasses>
<classifier>beta</classifier>
<packagingExcludes>**/excluded-file.txt</packagingExcludes>
<packagingIncludes>**/*.html</packagingIncludes>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
通过配置这些参数,你可以灵活地控制 WAR 文件的生成过程,满足不同的项目需求。