maven profile動態選擇配置文件


一、前言

  在maven的項目中如果想實現在不同環境加載不同配置文件(不同的數據庫、日志、使用參數等配置),可以優先考慮使用配置profile的方式來實現

二、在maven的pom.xml文件中配置:

(1)pom中指定配置的id和配置信息

 <profiles>
        <profile>
            <!-- 本地開發環境 -->
            <id>dev</id>
            <properties>
                <profiles.active>dev</profiles.active>
            </properties>
            <activation>
                <!-- 設置默認激活這個配置 -->
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <!-- 發布環境 -->
            <id>prod</id>
            <properties>
                <profiles.active>prod</profiles.active>
            </properties>
        </profile>
        <profile>
            <!-- 測試環境 -->
            <id>test</id>
            <properties>
                <profiles.active>test</profiles.active>
                <!--
                如果在properties或者yml中實用改變量使用@引用,
                比如server.port=@server.port@
                -->
                <server.port>8400</server.port>
            </properties>
        </profile>
    </profiles>

(2)在構建jar或者war包時候引用配置文件

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <!--一定要設置成true.這樣才會用對應env目錄下的配置文件覆蓋原來的-->
                <filtering>true</filtering>
                <excludes>
                    <exclude>application.properties</exclude>
                    <exclude>application-dev.properties</exclude>
                    <exclude>application-test.properties</exclude>
                    <exclude>application-prd.properties</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <!--一定要設置成true.這樣才會用對應env目錄下的配置文件覆蓋原來的-->
                <filtering>true</filtering>
                <includes>
                    <include>application.properties</include>
                    <include>application-${profiles.active}.properties</include>
                </includes>
            </resource>
        </resources>
    </build>

 

三、指定文件的啟動方式:

1)默認的激活

  上面的profile配置中設置的默認的激活環境。如下面所示

<activeByDefault>true</activeByDefault> 

2)使用-P參數顯示激活一個profile

  當我們在進行Maven操作時就可以使用-P參數顯示的指定當前激活的是哪一個profile了。比如我們需要在對項目進行打包的時候使用id為dev的profile,我們就可以這樣做:

mvn package –Pdev

   這里假設dev是在settings.xml中使用dev標記的處於激活狀態的profile,那么當我們使用“-P !profile”的時候就表示在當前操作中該profile將不處於激活狀態。

 

 

 

 

 

 

https://www.cnblogs.com/0201zcr/p/6262762.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM