1. 程式人生 > 其它 >Maven構建配置檔案

Maven構建配置檔案

技術標籤:MavenMaven構建配置檔案

文件說明: Maven構建配置檔案

01. 背景

在開發過程中,我們的專案會存在不同的執行環境(開發、測試、生產),而不同環境中專案的某些配置(資料來源等)是不一樣的,如果我們將軟體部署到不同環境都需要修改相應的配置檔案,這樣來回修改,很容易出錯,而且浪費勞動力。為此Maven提供了一種靈活的解決方案:就是profile功能。

02. 啟用方式

1. 通過maven命令引數

即在使用maven打包時通過-P引數,-P後跟上profile的唯一id,如

mvn package -Ptest

2. 通過pom檔案裡的activation屬性

<profile>
    <id>prod</id>
    <properties>
        <profiles.active>prod</profiles.active>
    </properties>
    <!-- activation用來指定啟用方式,可以根據jdk環境,作業系統,環境變數,檔案的存在或缺失 -->
    <activation>
        <!--配置預設啟用-->
        <activeByDefault>true</activeByDefault>
        
        <!--通過jdk版本-->
        <!--當jdk環境版本為1.5時,此profile被啟用-->
        <jdk>1.5</jdk>
        <!--當jdk環境版本1.5或以上時,此profile被啟用-->
        <jdk>[1.5,)</jdk>

        <!--根據當前作業系統-->
        <os>
            <name>Windows XP</name>
            <family>Windows</family>
            <arch>x86</arch>
            <version>5.1.2600</version>
        </os>

        <!--通過系統環境變數,name-value自定義-->
        <property>
            <name>env</name>
            <value>test</value>
        </property>

        <!--通過檔案的存在或缺失-->
        <file>
            <missing>target/generated-sources/axistools/wsdl2java/com/companyname/group</missing>
            <exists/>
        </file>
    </activation>
</profile>

這裡我寫了多種方式,可以通過activeByDefault、jdk版本、作業系統、系統環境變數(在win10我試了不成功,win7可以,不知道為啥)、檔案的存在或缺失,實際專案可以根據需要選取一種即可。這種的優先順序低於maven命令引數指定的方式。

3. settings.xml中使用activeProfiles指定(瞭解即可)

即mave目錄下的settings.xml也可以新增下面的程式碼來指定啟用哪個profile。

<activeProfiles>  
    <activeProfile>test</activeProfile>  
</activeProfiles> 

注意:

1. 修改{USER_HOME}/.m2/settings.xml,針對的當前使用者的profile配置;修改{MAVEN_HOME}/conf/settings.xml,針對的是全域性的profile配置。

2. profile也可以定義在setting.xml檔案中,但是這種方式個人感覺並不實用的,不推薦。

附:推薦springBoot,命令

參考:Maven的profile使用以及與springBoot的結合