一般在我們項目開發過程中,會針對不同的環境來配置多個文件,爲了在我們使用的時候,便於部署,提高效率,減少出錯,便於維護。
dev環境:開發環境,主要針對本地開發使用,用於需求開發,BUG修改,本地調試使用。
test環境:測試環境,主要用於測試人員使用,變動比較大,主要用於需求驗證,BUG驗證,外部用戶無法訪問。
pre環境:灰度環境(預上線環境),外部用戶可以訪問,服務器配置和生產一樣,但是配置相對較低。
pro環境:生產環境,主要面向外部用戶使用。
目的:通過Maven命令指定環境進行打包,打包後不需要通過命令行參數來切換不同環境的配置文件,把指定環境的這一步放到了maven打包的命令上
例:
測試環境:mvn clean package -P test
正式環境:mvn clean package -P pro
實現:通過maven profile功能,使我們在打包的時候,通過-P指定maven激活使用指定pofile,在pom.xml文件中通過profile標籤中的activatedProperties自定義標籤參數,來表示不同環境,不同的profile中activatedProperties參數值不同。
SpringBoot 通過 Maven filepro指定環境打包:
通過maven的profile功能和SpringBoot的profile相結合使用
1 項目resources文件目錄結構
如上圖所示,是比較常見的SpringBoot項目結構,不同的環境通過 application-{profile}.properties 來進行表示
2 修改pom.xml文件
2.1 添加profile標籤,在<project> 標籤下添加如下信息
<profiles>
<profile>
<!-- 本地 -->
<id>dev</id> <!--不同環境Profile的唯一id-->
<activation> <!-- 默認激活該profile節點, 在打包的時候 maven clean package -P XX 如果不指定環境,默認打當前節點 -->
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!--activatedProperties是自定義標籤(名字可以隨便起),自定義標籤可以有多個-->
<activatedProperties>dev</activatedProperties>
</properties>
</profile>
<profile>
<!-- 測試 -->
<id>test</id>
<properties>
<activatedProperties>test</activatedProperties>
</properties>
</profile>
<profile>
<!-- 生產 -->
<id>pro</id>
<properties>
<activatedProperties>pro</activatedProperties>
</properties>
</profile>
</profiles>
可以看到這裏定義了多個profile標籤,每個profile標籤都有唯一的id,也包含properties屬性。這裏爲每個profile都定義一個名爲activatedProperties的properties,每個環境的值不同。
2.2 在 <build> 標籤中 <plugins>下添加 maven 打包跳過測試(可不加)
<!-- maven 打包跳過測試 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
3 修改application.properties中的配置
spring.profiles.active= @activatedProperties@
4 通過maven命令進行項目打包
可以看到如果不指定環境,我們通過mvn clean package進行打包,端口號爲8081,默認是dev環境,也就是pom.xml文件中,我們設置爲默認的節點,看以下pom.xml圖。
接下來我們通過指定環境進行打包:
mvn clean package -P pro
當我們打包項目時,通過激活不同的環境,activatedProperties字段就會被賦予不同的值,會將其他環境配置文件排除,只保留指定的環境文件。
5 idea 本地啓動指定環境
5.1 點擊Edit Configrations
5.2 在Run/Debug Configurations彈出框中點擊 + 號,選擇Spring Boot
5.3 填寫運行配置,點擊OK
5.5 啓動工程
當需要運行別的環境的時候,只需要按照上面的教程再新建一個啓動配置,通過Active profiles指定環境即可。idea支持一個spring boot項目啓動多個實例,當每個環境端口號不一樣的時候可以運行多個實例: