鍍金池/ 問答/Java  C++  網(wǎng)絡(luò)安全/ springboot多環(huán)境打包時如何只打包當(dāng)前環(huán)境的配置文件

springboot多環(huán)境打包時如何只打包當(dāng)前環(huán)境的配置文件

1.springboot工程里面有application.properties和application-dev.properties和application-prod.properties這些文件。

其中application.properties中可以進(jìn)行環(huán)境切換

spring.profiles.active=dev

現(xiàn)在我使用下面的參數(shù)進(jìn)行打包,但打包后的文件中始終都含有這三個配置文件。

mvn clean package -Dmaven.test.skip=true -Dprofiles.active=dev
mvn clean package -Dmaven.test.skip=true -Pprod

圖片描述

而實際上我想要的效果是開發(fā)環(huán)境就只打包一個配置文件。請問該如何操作呢?

回答
編輯回答
歆久

在資源文件夾下建三個文件夾, 分別對應(yīng)放置各自的application.properties文件

src/main/resources/dev/application.properties
src/main/resources/test/application.properties
src/main/resources/pro/application.properties

在pom.xml里先定義三個profile

    <profiles>
        <profile>
            <!-- 本地開發(fā)環(huán)境 -->
            <id>dev</id>
            <properties>
                <profiles.active>dev</profiles.active>
                <modifier></modifier>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>       <!-- 默認(rèn)的,不加參數(shù)時執(zhí)行這個profile -->         
            </activation>
        </profile>
        <profile>
            <!-- 測試環(huán)境 -->
            <id>test</id>
            <properties>
                <profiles.active>test</profiles.active>
                <modifier>-test</modifier>        
            </properties>
        </profile>
        <profile>
            <!-- 生產(chǎn)環(huán)境 -->
            <id>pro</id>
            <properties>
                <profiles.active>pro</profiles.active>                
                <modifier>-pro</modifier>                
            </properties>
        </profile>
    </profiles>

在build的標(biāo)簽下, 先排除全部,再添加當(dāng)前通過-P參數(shù)激活的profile:

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <!-- 資源根目錄排除各環(huán)境的配置,防止在生成目錄中多余其它目錄 -->
                <excludes>
                    <exclude>test/*</exclude>
                    <exclude>pro/*</exclude>
                    <exclude>dev/*</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources/${profiles.active}</directory>
            </resource>
        </resources>

最后,編譯時加-P參數(shù)即可, 如:

mvn -Ppro package
2017年2月19日 20:52