Maven的profiles

Profile做用

Profile能让你为一个特殊的环境自定义一个特殊的构建;profile使得不一样环境间构建的可移植性成为可能。 Maven中的profile是一组可选的配置,能够用来设置或者覆盖配置默认值。有了profile,你就能够为不一样的环境定制构建。profile能够在pom.xml中配置,并给定一个id。而后你就能够在运行Maven的时候使用的命令行标记告诉Maven运行特定profile中的目标。ui

一个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将不会被激活。code

使用-P参数显示的激活一个profilexml

咱们在进行Maven操做时就可使用-P参数显示的指定当前激活的是哪个profile了。好比咱们须要在对项目进行打包的时候使用id为profileTest1的profile,咱们就能够这样作:ci

mvn package –P profileTest1

当咱们使用activeByDefault或settings.xml中定义了处于激活的profile,可是当咱们在进行某些操做的时候又不想它处于激活状态,这个时候咱们能够这样作:it

Mvn package –P !profileTest1

这里假设profileTest1是在settings.xml中使用activeProfile标记的处于激活状态的profile,那么当咱们使用“-P !profile”的时候就表示在当前操做中该profile将不处于激活状态。io

根据环境来激活profiletest

profile一个很是重要的特性就是它能够根据不一样的环境来激活,好比说根据操做系统的不一样激活不一样的profile,也能够根据jdk版本的不一样激活不一样的profile,等等。module

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

查看当前处于激活状态的profile

咱们能够同时定义多个profile,那么在创建项目的过程当中,到底激活的是哪个profile呢?Maven为咱们提供了一个指令能够查看当前处于激活状态的profile都有哪些,这个指定就是mvn help:active-profiles。

相关文章
相关标签/搜索