首先看下我的资源文件目录
两个 log4j2.xml 文件,最外层的是开发环境用的,uat目录下的是测试环境用的。
再看下我的pom.xml文件的结构目录
以下开始文件配置
如果对配置文件的位置有疑问,请参照上面的pom.xml结构目录
配置 【resources】
<build>
···
<resources>
<resource>
<!--资源文件目录-->
<directory>src/main/resources</directory>
<!--开启过滤,替换文件-->
<filtering>true</filtering>
<!--排除文件-->
<excludes>
<exclude>uat/*</exclude>
</excludes>
</resource>
</resources>
···
</build>
配置【profiles】
<profiles>
<profile>
<id>dev</id>
<properties>
<!--我的默认环境在最顶层,所以这个地方写空-->
<package.environment></package.environment>
</properties>
<activation>
<!--默认激活的环境-->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>uat</id>
<properties>
<package.environment>uat</package.environment>
</properties>
</profile>
</profiles>
配置【plugin】
<build>
<finalName>oilCard</finalName>
<plugins>
···
<!--war打包插件,指定资源打包
指定环境打包:mvn -P uat package -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<archive>
<!--打包后不包括maven的描述文件-->
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
<warName>${project.build.finalName}_${package.environment}</warName>
<!--打包的时候排除文件-->
<packagingExcludes>
src/main/resources/uat
</packagingExcludes>
<webResources>
<resource>
<!--替换要打包的资源到资源目录-->
<directory>src/main/resources/${package.environment}</directory>
<targetPath>WEB-INF/classes</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
···
</build>
打包命令:mvn -P uat package
mvn package 和 mvn install 区别
package是打包到当前目录中(默认target),install会把target下的资源推到资源仓库中。