实际的项目环境:
隔离环境之间各种配置可能存在的一些常见差异:
Maven环境隔离解决的实际问题:
Maven环境隔离配置:
<!-- 加载资源文件的配置 -->
<resources>
<resource>
<!-- 指定配置文件所在的目录,${deploy.type}是一个参数变量,通过这个变量来决定加载哪个环境的配置文件 -->
<directory>src/main/resources.${deploy.type}</directory>
<!-- 排除.jsp文件,也就是不加载.jsp文件 -->
<excludes>
<exclude>*.jsp</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<profiles>
<!-- 开发环境 -->
<profile>
<id>dev</id>
<activation>
<!-- 表示如果编译时没有指定环境,则以该环境为默认环境 -->
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<deploy.type>dev</deploy.type>
</properties>
</profile>
<!-- 测试环境 -->
<profile>
<id>beta</id>
<properties>
<deploy.type>beta</deploy.type>
</properties>
</profile>
<!-- 生产环境 -->
<profile>
<id>prod</id>
<properties>
<deploy.type>prod</deploy.type>
</properties>
</profile>
</profiles>
Maven环境隔离-资源文件目录初始化:
Maven环境隔离-IDEA中设置默认环境:
因为我们在IDEA运行Tomcat的时候会发布war包,而这个打包过程使用什么环境,就是在这里配置的,所以我们才要在IDEA中设置一个默认的环境。
注:不要多选,多选环境可能会造成环境错乱。
Maven环境隔离-编译打包命令:
-P${环境标识}
,例如:mvn clean package -Dmaven.test.skip=true -Pdev # 开发环境的打包命令
mvn clean package -Dmaven.test.skip=true -Pbeta # 测试环境的打包命令
mvn clean package -Dmaven.test.skip=true -Pprod # 生产环境的打包命令
Maven环境隔离验证:
打包完成后,我们可以到target下的classes目录中,查看我们的配置文件是否为开发环境的配置文件。如下:
然后我们再来进行测试环境的打包,打包完成后,也是查看我们的配置文件是否为测试环境的配置文件。如下:
至此,我们就完成了Maven环境隔离的配置及打包验证,这样当我们使用不同的命令参数进行编译打包,就能达到一个环境隔离的作用。由于隔离了环境,我们在开发完项目进行打包上线的时候,就不需要再手动地去修改配置文件了,减去了不少麻烦。
原文:http://blog.51cto.com/zero01/2112783