您的位置:首页 > 其它

maven下的pom.xml中定义的profile

2015-07-13 09:29 387 查看


一、定义Profile

pom.xml 中的profiles 元素,它包含了一个或者多个profile 元素。由于profile 覆盖了pom.xml 中的

默认设置,profiles 通常是pom.xml 中的最后一个元素。
每个 profile 必须要有一个id 元素。这个id 元素包含的名字将在命令行调用profile 时被用到。我们可以

通过传给Maven 一个-P<profile_id>参数来调用profile。
一个 profile 元素可以包含很多其它元素,只要这些元素可以出现在POM XML 文档的project 元素下

面。

Maven profile 可以覆盖几乎所有pom.xml 中的配置。Maven POM 包含一个名为profiles 的元素,它包含了项

目的替代配置,在这个元素下面,每个profile 元素定义了一个单独的profile。每个profile 必须要有一个id,除此之外,它可以包含几乎所有你能在project 下看到的元素。

一个Profile 可以覆盖项目构件的最终名称,项目依赖,插件配置以影响构建行为。Profile 还可以覆盖分发配置;例如,如果你通过一个staging profile 发布一个构件到staging 服务器上,你就可以创建一个profile 然后在里面定义distributionManagement 元素。

Xml代码


<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

Maven 提供了一种针对不同环境参数“激活”一个profile 的方式,这就叫做profile 激活。激活配置元素下可以包含一个或者多个选择器:包含JDK 版本,操作系统参数,文件,以及属性。当所有标准都被满足的时候一个profile 才会被激活。例如,一个profile可以要求操作系统家族为Windoes,JDK 版本为1.4,那么该profile 只有当构建在Windows 机器上的Java 1.4 上运行的时候才会被激活。如果该profile 被激活,那么它定义的所有配置都会覆盖原来POM 中对应层次的元素,就像使用命令行参数-P
引入该profile 一样。

例如:

Xml代码


<project>

...

<profiles>

<profile>

<id>dev</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.5</value>

</property>

<file>

<exists>file2.properties</exists>

<missing>file1.properties</missing>

</file>

</activation>

...

</profile>

</profiles>

</project>

你可以基于一个属性如environment.type 的值来激活一个profile。当environment.type 等于dev 的时候激活development profile,或者当environment.type 等于prod 的时候激活production profile。你也可以通过一个属

性的缺失来激活一个profile。下面的配置中,只有在Maven 运行过程中属性environment.type 不存在profile 才被激活。 例如:

Xml代码


<project>

...

<profiles>

<profile>

<id>development</id>

<activation>

<property>

<name>!environment.type</name>

</property>

</activation>

</profile>

</profiles>

</project>


三、外部Profiles文件

要定义名部的Profiles文件,只需要在${baseDir}下定义一个profiles.xml文件即可,文件的内容结构大约是:

Xml代码


<profiles>

<profile>

<id>development</id>

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<configuration>

<debug>true</debug>

<optimize>false</optimize>

</configuration>

</plugin>

</plugins>

</build>

</profile>

<profile>

<id>production</id>

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<configuration>

<debug>false</debug>

<optimize>true</optimize>

</configuration>

</plugin>

</plugins>

</build>

</profile>

</profiles>


三、用户特定的Profile和全局的Profile

要定义用户特定的Profile,只需要配置系统用户目录下的~/.m2/settings.xml;要配置全局Profile,需要配置Maven_Home/conf/settings.xml。


四、列出活动的Profile

用户可以在以下四个地方配置Profile

pom.xml
profiles.xml
~/.m2/settings.xml
Maven_Home/conf/settings.xml

可以通过命令:

C代码


$ mvn help:active-profiles

得到所有活动的profile
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: