1、在pom文件的<project>根目录下添加如下节点
<!-- 对应开发、测试、生产三种环境 -->
<profiles>
<!-- 开发环境 -->
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 测试环境 -->
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>
<!-- 生产环境 -->
<profile>
<id>pro</id>
<properties>
<env>pro</env>
</properties>
</profile>
</profiles>
2、在<project>/<build>下设置resources节点,如下:
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 根据输入参数动态修改相关内容 -->
<filtering>true</filtering>
<!-- 资源根目录排除各环境的配置,防止在生成目录中多余其它目录 -->
<excludes>
<exclude>dev/**</exclude>
<exclude>test/**</exclude>
<exclude>pro/**</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/${env}</directory>
<!-- 根据输入参数动态修改相关内容 -->
<filtering>true</filtering>
</resource>
</resources>
3、<project>/<build>/<plugins>打包设置中使用已编译好的classes目录
这样的话就不需要重复设置<project>/<resources>节点了
<!-- 配置文件转移到config目录 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<encoding>UTF-8</encoding>
<!-- 表示把配置文件拷到和jar包同一个路径下 -->
<outputDirectory>
${project.build.directory}/conf
</outputDirectory>
<resources>
<resource>
<directory>${project.build.directory}/classes</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>