欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

maven中profile動(dòng)態(tài)打包不同環(huán)境配置文件的實(shí)現(xiàn)

 更新時(shí)間:2023年10月30日 11:36:27   作者:SYKMI  
開發(fā)項(xiàng)目時(shí)會(huì)遇到這個(gè)問(wèn)題:開發(fā)環(huán)境,測(cè)試環(huán)境,生產(chǎn)環(huán)境的配置文件不同, 打包時(shí)經(jīng)常要手動(dòng)更改配置文件,本文就來(lái)介紹一下maven中profile動(dòng)態(tài)打包不同環(huán)境配置文件的實(shí)現(xiàn),感興趣的可以了解一下

maven中的profile可以在打包時(shí)動(dòng)態(tài)選擇不同的配置文件進(jìn)行打入,在項(xiàng)目具有開發(fā)、測(cè)試、生產(chǎn)環(huán)境時(shí)可以更方便優(yōu)雅的進(jìn)行不同環(huán)境的打包運(yùn)行

示例圖:

1-配置profile

第一步需要為每個(gè)環(huán)境配置一個(gè)profile標(biāo)簽,在pom文件中進(jìn)行配置。我這里只演示dev和test的環(huán)境配置

    <profiles>
        <profile>
            <id>dev</id> <!--給每個(gè)環(huán)境一個(gè)唯一的id-->
            <properties><!--在這個(gè)標(biāo)簽中配置你的自定義變量,下面的env就是我自己定義的-->
                <env>dev</env>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault><!--默認(rèn)激活的環(huán)境-->
            </activation>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <env>test</env>
            </properties>
        </profile>
    </profiles>

這里需要說(shuō)明的是自定義的變量,這個(gè)變量可以在pom文件中的其他地方以${標(biāo)簽名}的形式進(jìn)行引用,同時(shí)也可以在springboot的配置文件中進(jìn)行引用,在springboot的配置文件中進(jìn)行引用時(shí),使用@標(biāo)簽名@進(jìn)行引用

2-配置需要進(jìn)行打包的文件

當(dāng)我們配置好環(huán)境之后,需要在pom里新建resources標(biāo)簽進(jìn)行根據(jù)指定環(huán)境打包指定配置文件的處理

        <resources>
            <resource>
                <directory>src/main/resources</directory><!--指定資源文件夾-->
                <includes>
                    <include>**/*.properties</include><!--將該資源文件夾下的properties文件全部打包-->
                </includes>
                <excludes>
                    <exclude>**/payConfig/**</exclude><!--這里排除payConfig文件夾,也就是說(shuō)該文件夾中的文件不會(huì)被打包,因?yàn)檫@個(gè)文件夾下的配置文件需要?jiǎng)討B(tài)處理-->
                </excludes>
                <filtering>false</filtering><!--這些資源文件將保持原樣,不會(huì)進(jìn)行任何替換或修改操作-->
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>application-${env}.yml</include><!--這里使用占位符進(jìn)行動(dòng)態(tài)引用以確定具體的打包文件-->
                    <include>application.yml</include><!--主配置文件必須打包-->
                </includes>
                <filtering>true</filtering><!--開啟過(guò)濾,在打包時(shí)application.yml中配置的@env@將被確定到底是什么變量-->
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>config/payConfig/aliPay/${env}/*.properties</include>
                    <include>config/payConfig/wxPay/${env}/*.properties</include>
                </includes>
                <filtering>false</filtering><!--這里不需要設(shè)置過(guò)濾,上面的${env}是pom內(nèi)部變量的使用,設(shè)置過(guò)濾是為了替換文件內(nèi)的引用變量-->
            </resource>
        </resources>

提示1:filtering標(biāo)簽用于指定是否對(duì)資源文件進(jìn)行過(guò)濾處理。
當(dāng)一個(gè)資源文件需要在構(gòu)建期間進(jìn)行替換或修改時(shí),可以使用過(guò)濾機(jī)制。例如,將屬性值注入到配置文件中,或根據(jù)環(huán)境對(duì)資源文件進(jìn)行不同的配置。
提示2:** 表示多級(jí)目錄匹配。* 表示一級(jí)目錄匹配。

3-配置SpringBoot配置文件

可以看到配置文件中使用了@env@占位符進(jìn)行配置,也就是說(shuō),我們只有在使用maven進(jìn)行編譯的時(shí)候才確定到底是什么值,由于在第二步中已經(jīng)在pom中開啟了過(guò)濾,所以在打包時(shí)占位符將被替換

4-編譯測(cè)試

我不使用默認(rèn)的dev環(huán)境,手動(dòng)選擇test進(jìn)行編譯

下面是編譯后的文件結(jié)構(gòu)

可以看到成功將test環(huán)境的文件進(jìn)行編譯,其他不包含,并且application.yml中的值也被替換

同時(shí)也可以使用mvn clean package -P[dev|test|pro]指定環(huán)境進(jìn)行命令行形式打包

TIPS:

  • -P代表(Profiles配置文件) 在<profiles>指定的<id>中,可以通過(guò)-P進(jìn)行傳遞或者賦值。 打包時(shí)執(zhí)行mvn clean package -P prod將觸發(fā)prod環(huán)境的profile配置 打包時(shí)執(zhí)行mvn clean package -P test將觸發(fā)test環(huán)境的profile配置
  • -D代表(Properties屬性)-D屬性名=屬性值 如果pom文件中已經(jīng)通過(guò)properties標(biāo)簽指定了值的話,使用命令將替換pom中的值。如果沒有的話,它將被設(shè)置

大功告成

到此這篇關(guān)于maven中profile動(dòng)態(tài)打包不同環(huán)境配置文件的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)maven profile動(dòng)態(tài)打包不同環(huán)境配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論