SringBoot 1.5.9 使用 Maven filepro指定環境打包

一般在我們項目開發過程中,會針對不同的環境來配置多個文件,爲了在我們使用的時候,便於部署,提高效率,減少出錯,便於維護。

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項目啓動多個實例,當每個環境端口號不一樣的時候可以運行多個實例:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章