Maven 区分开发环境和测试环境 配置
项目开发过程中,如果一个项目经常发布,那么在打包之前会不断的修改配置文件,这无疑是很麻烦的一件事情。今天我介绍下这个问题怎么解决。
注意:本配置的前提是项目必须是MAVEN项目。
第一步、创建配置文件
在项目的src/main/resources目录下创建 local.properties prod.properties 两个文件。
local是本地的配置内容。prod是正式配置内容
例如local:
jdbc.driver=oracle.jdbc.driver.OracleDriver #本地测试环境 jdbc.url=jdbc:oracle:thin:@111.129.207.201:5206:box11g jdbc.username=zjkf jdbc.password=box123456
prod同理
第二步:配置需要读取的配置文件
system.properties中需要变化的变量使用参数进行配置,如
jdbc.driver=oracle.jdbc.driver.OracleDriver jdbc.url=${jdbc.url} jdbc.username=${jdbc.username} jdbc.password=${jdbc.password}
注意:${jdbc.url} 直接对应上面配置的local.properties或prod.properties文件中的名称。
第三步:配合MAVEN 的 pom.xml文件
<profiles> <profile> <id>local</id> <properties> <env>local</env> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>prod</id> <properties> <env>prod</env> </properties> </profile> </profiles> <build> <filters> <filter>src/main/resources/config/${env}.properties</filter> </filters> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build>
配置解释:
<id>local</id>
打包时跟在P参数后的id
<env>local</env>
配置文件名,如本例为local,则对应的配置文件为src/main/resources/filter/local.properties
<activation>
<activeByDefault>true</activeByDefault>
</activation>
此配置表示默认使用,即打包时如果不使用P参数则默认使用此配置文件
<filter>src/main/resources/filter/${env}.properties</filter>
配置文件路径,此路径可以自定义
<directory>src/main/resources</directory>
maven中配置文件目录,一般不会更改。
第四 步:打包
打本地包 mvn -Plocal install或者mvn install(因为本例activeByDefault配的为true)
打产品包 mvn -Pprod install
配置就是这么简单,但是这个种配置有一个弱点,因为是基于MAVEN的环境,如果在本地完生产包后。项目的配置会变成生产的配置,如果任然要用你本地的配置,那么你需要在打本地包来把配置更新回来。