Activation是profile的开启钥匙。如POM中的profile一样,profile的力量来自于它能够在某些特定的环境中自动使用某些特定的值;这些环境通过activation元素指定。
Example A.6. 在settings.xml中定义Activation参数
<settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> ... <profiles> <profile> <id>test</id> <activation> <activeByDefault>false</activeByDefault> <jdk>1.5</jdk> <os> <name>Windows XP</name> <family>Windows</family> <arch>x86</arch> <version>5.1.2600</version> </os> <property> <name>mavenVersion</name> <value>2.0.3</value> </property> <file> <exists>/data/hudson-temporal-data/hudson-orchestrator-home/workspace/Book-To-Production/content-zh/file2.properties</exists> <missing>/data/hudson-temporal-data/hudson-orchestrator-home/workspace/Book-To-Production/content-zh/file1.properties</missing> </file> </activation> ... </profile> </profiles> ... </settings>
当所有指定的条件符合的时候,profile机会被激活,虽然大部分情况我们不会需要所有的条件。
- jdk
-
activation通过其jdk元素,提供了一个内置的,Java-核心的检查器。如果我们运行的一个jdk版本号,这里所配置的值能作为前缀与之匹配,激活就会发生。在上述的例子中,1.5.0_06就能够匹配。
- os
-
os
元素可以定义一些操作系统相关的属性,如上例。 - property
-
如果Maven检测到某一个属性(其值可以在POM中通过${名称}引用),其拥有对应的名称和值,Profile就会被激活。
- file
-
最后,通过提供一个文件名,通过检测该文件的存在或不存在来激活profile。
activation
元素并不是激活profile的唯一方式。settings.xml
文件中的activeProfile
元素可以包含profile的id。profile也可以通过在命令行,使用-P标记和逗号分隔的列表来显式的激活(如,-P
test)。
要了解在某个特定的构建中哪些profile会激活,可以使用maven-help-plugin。
mvn help:active-profiles