Maven的profiles

Profile作用

Profile能讓你爲一個特殊的環境自定義一個特殊的構建;profile使得不同環境間構建的可移植性成爲可能。 Maven中的profile是一組可選的配置,可以用來設置或者覆蓋配置默認值。有了profile,你就可以爲不同的環境定製構建。profile可以在pom.xml中配置,並給定一個id。然後你就可以在運行Maven的時候使用的命令行標記告訴Maven運行特定profile中的目標。

一個Profiles下面允許出現的元素:

<project>
    <profiles>
        <profile>
            <build>
                <defaultGoal>...</defaultGoal>
                <finalName>...</finalName>
                <resources>...</resources>
                <testResources>...</testResources>
                <plugins>...</plugins>
            </build>
            <reporting>...</reporting>
            <modules>...</modules>
            <dependencies>...</dependencies>
            <dependencyManagement>...</dependencyManagement>
            <distributionManagement>...</distributionManagement>
            <repositories>...</repositories>
            <pluginRepositories>...</pluginRepositories>
            <properties>...</properties>
        </profile>
    </profiles>
</project>

Profile激活

使用activeByDefault設置激活

<profiles> 
    <profile> 
        <id>profileTest1</id> 
        <properties> 
            <hello>world</hello> 
        </properties> 
        <activation> 
            <activeByDefault>true</activeByDefault> 
        </activation> 
    </profile> 

    <profile> 
        <id>profileTest2</id> 
        <properties> 
            <hello>andy</hello> 
        </properties> 
    </profile> 
</profiles> 

指定activeByDefault爲true的時候就表示當沒有指定其他profile爲激活狀態時,該profile就默認會被激活。 所以當我們調用mvn package的時候上面的profileTest1將會被激活,但是當我們使用mvn package –P profileTest2的時候將激活profileTest2,而這個時候profileTest1將不會被激活。

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

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

mvn package –P profileTest1

當我們使用activeByDefault或settings.xml中定義了處於激活的profile,但是當我們在進行某些操作的時候又不想它處於激活狀態,這個時候我們可以這樣做:

Mvn package –P !profileTest1

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

根據環境來激活profile

profile一個非常重要的特性就是它可以根據不同的環境來激活,比如說根據操作系統的不同激活不同的profile,也可以根據jdk版本的不同激活不同的profile,等等。

<profiles> 
    <profile> 
        <id>profileTest1</id> 
        <jdk>1.5</jdk> 
    </profile> 
<profiles> 

查看當前處於激活狀態的profile

我們可以同時定義多個profile,那麼在建立項目的過程中,到底激活的是哪一個profile呢?Maven爲我們提供了一個指令可以查看當前處於激活狀態的profile都有哪些,這個指定就是mvn help:active-profiles。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章