1. 程式人生 > >maven多環境配置打包(自定義properties)

maven多環境配置打包(自定義properties)

專案開發經常碰到配置檔案中測試的jdbc.url和線上的是不一樣的。為此每次打包都要修改配置檔案,很煩,而且也容易出錯。 

最近才發現,原來用maven的profile可以實現多種環境的配置。 

1、在src/main/resources/filters,建兩個檔案:test.properties和prod.properties。 
分別放置測試環境和生產環境的配置。(假設兩個檔案中都設定了jdbc.url屬性) 

2、新建src/main/resources/conf.properties檔案。裡面設定 
Properties程式碼  收藏程式碼
  1. jdbc.url=${jdbc.url}  

3、配置pom.xml。配置如下 

Pom.xml程式碼  收藏程式碼
  1. <profiles>  
  2.         <profile>  
  3.             <id>test</id>  
  4.             <properties>  
  5.                 <env>test</env>  
  6.             </properties>  
  7.             <activation>  
  8.                 <activeByDefault>true</activeByDefault>  
  9.             </activation>  
  10.         </profile>  
  11.         <profile>  
  12.             <id>prod</id>  
  13.             <properties>  
  14.                 <env>prod</env>  
  15.             </properties>  
  16.         </profile>  
  17.     </profiles>  
  18.     <build>  
  19.         <filters>  
  20.             <filter>src/main/resources/filters/${env}.properties</filter>  
  21.         </filters>  
  22.         <resources>  
  23.             <resource>  
  24.                 <directory>src/main/resources</directory>  
  25.                 <filtering>true</filtering>  
  26. <includes>
    <include>**/*</include>
    </includes>
  27.             </resource>  
  28.         </resources>  
  29. <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
    <source>1.7</source>
    <target>1.7</target>
    <encoding>UTF-8</encoding>
    </configuration>
    </plugin>
     
  30. </plugins>
  31.     </build>  

4、打包。使用mvn packge -Ptest 即可實現測試環境打包。如果要prod環境配置,只需-Pprod即可。當然pom配置中預設不傳-P引數的話是使用test環境配置。