maven-war-plugin用来打包web项目的依赖、类和资源。
参考Apache官方介绍:https://maven.apache.org/plugins/maven-war-plugin/
本文参考3W学习方法来叙述内容。
WAR 插件负责收集 Web 应用程序的所有工件依赖项、类和资源,并将它们打包到 Web 应用程序存档中。
war插件非maven默认安装的插件,当需要为web项目打war包时,可选择安装该插件。
所有 Maven 项目的默认资源目录是src/main/resources,它将被打包至在 WAR中的target/classes和WEB-INF/classes中。目录结构将在此过程中保留。
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>resource2</directory>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
...
</project>
...
<configuration>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>resource2</directory>
<!-- the list has a default value of ** -->
<includes>
<include>**/*.jpg</include>
</includes>
<!-- there's no default value for this -->
<excludes>
<exclude>**/image2</exclude>
</excludes>
</resource>
</webResources>
</configuration>
...
PS:混合包含和排除时要小心,排除将具有更高的优先级。如果资源与两者都匹配,则包含不能覆盖排除。
默认情况下,Web 资源被复制到 WAR 的根目录,如前面的示例所示。要覆盖默认目标目录,请指定目标路径。
...
<configuration>
<webResources>
<resource>
...
</resource>
<resource>
<directory>configurations</directory>
<!-- override the destination directory for this resource -->
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>
</configuration>
...