一、需求场景
1、开发环境和生产环境数据库地址和信息不同。
2、开发和生产日志等级不同
。。。
二、最简单的实现方式
在 pom.xml 中配置
<!-- 设置不同环境打包 -->
<profiles>
<profile>
<id>dev</id>
<properties>
<db.url>aa1</db.url>
<db.username>bb1</db.username>
<db.password>cc1</db.password>
<log.sqlEnable>true</log.sqlEnable>
<log.appender>console</log.appender>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>product</id>
<properties>
<db.url>aa2</db.url>
<db.username>bb2</db.username>
<db.password>cc2</db.password>
<log.sqlEnable>true</log.sqlEnable>
<log.appender>mainLog</log.appender>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
<build>
<finalName>xx-web</finalName>
<!-- src/main/resources目录下 上面配置的字符串过滤替换 -->
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
|
使用如下:
eg. /src/main/resources/conf/jdbc.properties
jdbc.driver=oracle.jdbc.OracleDriver
jdbc.url=${db.url}
jdbc.username=${db.username}
jdbc.password=${db.password}
|
默认是激活 dev 的配置,activeByDefault 那里设置为true了。
所以打包到生产环境时,需要执行类似如下命令,
mvn clean -X package -Pproduct
这样就避免每次手动替换工程中的不同了。如果有更复杂的配置差异,请参考:
Maven插件之portable-config-maven-plugin(不同环境打包)
Maven实战(九)——打包的技巧
maven多环境打包配置
原文:http://blog.csdn.net/ycpanda/article/details/46519543