一、定义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 元素。
<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 一样。
例如:
<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 才被激活。 例如:
<project>
...
<profiles>
<profile>
<id>development</id>
<activation>
<property>
<name>!environment.type</name>
</property>
</activation>
</profile>
</profiles>
</project>
三、外部Profiles文件
要定义名部的Profiles文件,只需要在${baseDir}下定义一个profiles.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
可以通过命令:
$ mvn help:active-profiles
得到所有活动的profile
分享到:
相关推荐
maven-profile-2.0.6.jar!!!
在maven中实现多环境的构建可移植性需要使用profile,通过不同的环境激活不同的profile来达到构建的可移植性。
maven项目转换为eclipse项目,可能缺少的包。
maven-profile-2.1.0.jar
maven-profile-2.0.2.jar
maven-profile-2.0.1.jar
maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装...
maven中setting阿里云的详细镜像配置,setting的配置细节 maven中setting阿里云的详细镜像配置,setting的配置细节
使用maven Profile实现多环境构建,详细请参考 :http://blog.csdn.net/u011781521/article/details/77899467
maven 实用手册 中文 Maven权威指南中文版 Maven权威指南中文版
Maven 中文简介, 包含Maven 语法, 节点讲解, 使用方法.
中文maven中文maven文档。很详细。大家看看
NULL 博文链接:https://hejiawangjava.iteye.com/blog/2280427
Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令
maven中jar包为下载完成last清理,更好的让maven管理jar包
maven3.0maven3.0maven3.0maven3.0maven3.0maven3.0maven3.0maven3.0maven3.0maven3.0
主要介绍了使用maven profile指定配置文件打包适用多环境的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
maven中文学习,maven-definitive-guide_zh.pdf
Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven3.9.4版本压缩包,仅供学习参考,更新版本请前往Maven官方下载;Maven...
maven中oracle jar包