1. 程式人生 > >使用maven profile實現多環境配置相關打包

使用maven profile實現多環境配置相關打包

本地 ces 軟件測試 測試 project oca rect fault uil

項目開發需要有多個環境,一般為開發,測試,預發,正式4個環境,通過maven可以實現按不同環境進行打包部署,命令為:

mvn package -P dev

在eclipse中可以右擊選項run configuration,輸入上述命令。

PS:eclipse maven install和maven packege的區別在於前者除了打包到target外,還會install到本地倉庫,這樣其他引用的工程就可直接使用。

其中“dev“為環境的變量id, 可以自己定義, 我定義的名稱為:dev,qa,pre,prod , 具體在pom.xml中的配置如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  4. ......
  5. <profiles>
  6. <profile>
  7. <id>dev</id>
  8. <properties>
  9. <env>dev</env>
  10. </properties>
  11. <activation>
  12. <activeByDefault>true</activeByDefault>
  13. </activation>
  14. </profile>
  15. <profile>
  16. <id>qa</id>
  17. <properties>
  18. <env>qa</env>
  19. </properties>
  20. </profile>
  21. <profile>
  22. <id>pre</id>
  23. <properties>
  24. <env>pre</env>
  25. </properties>
  26. </profile>
  27. <profile>
  28. <id>prod</id>
  29. <properties>
  30. <env>prod</env>
  31. </properties>
  32. </profile>
  33. </profiles>
  34. ......
  35. <build>
  36. <filters>
  37. <filter>config/${env}.properties</filter>
  38. </filters>
  39. <resources>
  40. <resource>
  41. <directory>src/main/resources</directory>
  42. <filtering>true</filtering>
  43. </resource>
  44. </resources>
  45. ......
  46. </build>
  47. </project>

1.profiles定義了各個環境的變量id

2.filters中定義了變量配置文件的地址,其中地址中的環境變量就是上面profile中定義的值

3.resources中是定義哪些目錄下的文件會被配置文件中定義的變量替換,一般我們會把項目的配置文件放在src/main/resources下,像db,bean等,裏面用到的變量在打包時就會根據filter中的變量配置替換成固定值

使用maven profile實現多環境配置相關打包