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

maven-maven使用-P參數(shù)打包不同環(huán)境問題

 更新時(shí)間:2023年11月18日 09:55:40   作者:iiaythi  
這篇文章主要介紹了maven-maven使用-P參數(shù)打包不同環(huán)境問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

maven-maven使用-P參數(shù)打包不同環(huán)境

一般的,開發(fā)環(huán)境有dev, test 和 pro,他們的配置多有不同,那么就可以使用 maven -P這個(gè)參數(shù)進(jìn)行多環(huán)境打包

clean install -Dmaven.test.skip=true -P pro,就可以切換成生產(chǎn)環(huán)境,和 jenkins 配合簡直不要太爽!!

舉個(gè)例子

以 boot 項(xiàng)目來說,現(xiàn)有目錄結(jié)構(gòu):

/src
    /main
        /java
        /resources
            /static
            /templates
            application.yml
            application-dev.yml
            application-pro.yml
            application-test.yml

application.yml:

server:
  port: 8080
spring:
  profiles:
     # @spring.profiles.active@ 變量將會(huì)隨著參數(shù)的傳入被替換
    active: @spring.profiles.active@

然后三個(gè)不同環(huán)境的配置文件分別為:

application-dev.yml:

server:
  port: 8080
spring:
  application:
    name: mpp-dev

application-pro.yml:

server:
  port: 8081
spring:
  application:
    name: mpp-pro

application-test.yml:

server:
  port: 8082
spring:
  application:
    name: mpp-test

配置 maven 的 pom 文件,默認(rèn)激活 dev 環(huán)境:

<profiles>
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <spring.profiles.active>dev</spring.profiles.active>
        </properties>
    </profile>
    <profile>
        <id>test</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <properties>
            <spring.profiles.active>test</spring.profiles.active>
        </properties>
    </profile>
    <profile>
        <id>pro</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <properties>
            //spring.profiles.active即在application.yml文件中
            //定義的參數(shù)@spring.profiles.active@
            <spring.profiles.active>pro</spring.profiles.active>
        </properties>
    </profile>
</profiles>

根據(jù)環(huán)境過濾只有當(dāng)前環(huán)境的配置文件:

<resources>
    <resource>
        <directory>src/main/resources</directory>
        <!-- 替換占位符-->
        <filtering>true</filtering>
        <excludes>
            <exclude>application-*.yml</exclude>
        </excludes>
    </resource>
    <resource>
        <directory>src/main/resources</directory>
        <!-- 替換占位符-->
        <filtering>true</filtering>
        <includes>
            <include>application-${spring.profiles.active}.yml</include>
        </includes>
    </resource>
</resources>

需要加入 plugin 為:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.1.0</version>
</plugin>

測試

在當(dāng)前項(xiàng)目 pom 文件所在的目錄下打開命令行,輸入 clean package -Dmaven.test.skip=true -P pro

可以看到:

/target
    /classes
        /com
        application.yml
        application-pro.yml

打開 application.yml 文件:

server:
  port: 8080
spring:
  profiles:
    active: pro

可以發(fā)現(xiàn)之前 @spring.profiles.active@ 變量已經(jīng)被替換成了 pro ,而且配置文件只關(guān)于生產(chǎn)環(huán)境,而且dev 和 test 的配置文件都已經(jīng)被過濾了

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論