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的环境,如果在本地完生产包后。项目的配置会变成生产的配置,如果任然要用你本地的配置,那么你需要在打本地包来把配置更新回来。

相关推荐