简述maven中的profiles

Profiles是maven的一个很关键的术语:profile是用来定义一些在build lifecycle中使用的environmental variations,profile可以设置成在不同的环境下激活不同的profile(例如:不同的OS激活不同的profile,不同的JVM激活不同的profile,不同的dabase激活不同的profile等等)。

定义Profiles

你可以把profiles定义在4个地方:

%M2_HOME%/conf/settings.xml,这是针对该部电脑的所有user的profiles,是global profiles,它会影响所有的maven project build

<your -home-directory>/.m2/settings.xml,这是针对per user的profiles,是user级的profiles,它会影响当前user的所有maven project build

定义在pom.xml文件里面,这是仅针对该project的profiles,是project级的profiles

profiles.xml,它和pom.xml在同一个目录下,也是project级的profiles,使用profiles.xml的目的是希望把profiles的设置从pom.xml里抽离出来设置。

定义在这4个地方的profiles中,涉及范围越窄的profiles会覆盖范围越宽的profiles。即:定义在pom.xml里profiles会覆盖profiles.xml的,profiles.xml的会覆盖<your -home-directory>/.m2/settings.xml的,<your -home-directory>/.m2/settings.xml的会覆盖%M2_HOME%/conf/settings.xml的。

不过请注意:设置在pom.xml里的profiles是最最推荐的,因为pom.xml会被deploy到repository里,所以pom.xml里的profiles才会available for subsequent builds originating from the repository or as transitive dependencies。而settings.xml和profiles.xml里定义的profiles不会被deploy到repository,则有诸多限制,因此,只有下面几个profiles能够在settings.xml和profiles.xml里定义:

repositories

pluginRepositories

properties

其他类型的profiles必须在pom.xml里定义(上面3个profiles也可以在pom.xml里定义)。

Pom.xml能够定义的profiles包括:

<repositories>
<pluginRepositories>
<dependencies>
<plugins>
<properties> (not actually available in the main POM, but used behind the scenes)
<modules>
<reporting>
<dependencyManagement>
<distributionManagement>
a subset of the <build> element, which consists of:
<defaultGoal>
<resources>
<testResources>
<finalName>

时间: 2024-12-21 19:35:39

简述maven中的profiles的相关文章

Lucene 3.6.2入(3) 简述Lucene中常见的搜索功能

package com.jadyer.lucene; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.

maven中引用JDK中的tools.jar

一 概念 tools.jar是java最基本的包,里面包含了从java最重要的lang包到各种高级功能如可视化的swing包,是java必不可少的. 二 遇到问题 可见tools.jar是一个非常重要的jar包,那么我们要在maven中应用怎么办呢? 三 解决办法 在pom.xml中 <dependency>  <groupId>com.sun</groupId>  <artifactId>tools</artifactId>  <vers

maven中怎么实现接口啊?新手,求大神指点..

问题描述 maven中怎么实现接口啊?新手,求大神指点.. 怎么实现接口,并注入信息: ![图片说明](http://img.ask.csdn.net/upload/201508/24/1440400877_116404.png), {"access_token":"bcabc55a2","fc_sub":[{"item_id":"5","operation":"publish

配置maven中出现的问题

问题描述 配置maven中出现的问题 在为一个历史遗留工程配置完svn+maven+hudson后,hudson控制台报错 org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project qoe2: Compilation f

Maven中测试插件(surefire)的相关配置及常用方法

原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong 1. 在Maven中配置测试插件surefire <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.17</version> </plugin

把web项目完全挪到maven中mybatis返回值为空

问题描述 把web项目完全挪到maven中mybatis返回值为空 解决方案 空指针错误,把原码帖出来.

在maven中如何获取系统时间?

问题描述 项目要求,用maven打包的时候,生成的文件以系统时间结尾,但是不知道怎么在在maven中如何获取系统时间?求解答..... 解决方案 <finalName>${project.artifactId}-${project.version}-${buildNumber}</finalName><plugin><groupId>org.codehaus.mojo</groupId><artifactId>buildnumber-

Maven 中的pom.xml文件

Maven中的Pom.xml文件解析 项目管理利器(Maven)--Pom.xml解析 <name>项目的描述名</name> <url>项目的地址</url> <description>项目描述</description> <developers>开发人员信息</developers> <licenses>许可证信息</licenses> <!-- 依赖列表 --> <

理解Maven中的SNAPSHOT版本和正式版本

Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个属性构成的,分别是groupId.artifactId以及version.这三个属性可以唯一确定一个组件(Jar包或者War包). 其实在Nexus仓库中,一个仓库一般分为public(Release)仓和SNAPSHOT仓,前者存放正式版本,后者存放快照版本.如果在项目配置文件中(无论是build