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>
使用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。