Maven settings细节

陈科肇

==========

0.简介

settings.xml文件的settings元素包含很多子元素,这些用来配置Maven的执行情况。

可以在两个地方找到settings.xml文件:Maven安装目录下的$MAVEN_HOME/conf/settings.xml、用户特定在~/.m2/settings.xml。

1.简单值

一半顶层settings元素是简单值,它们表示的一系列值可以配置Maven的核心行为:

localRepository – 表示构建系统本地仓库的位置;

interactiveMode -如果Maven需要和用户交互以获得输入,则设置成true,反之则应为false。默认为true;

2.服务器(Servers)

POM中的distributionManagement元素定义了部署的仓库。然而,一些设置如安全证书不应该和pom.xml一起分发。这

种类型的信息应该存在于构建服务器上的settings.xml文件中。 <servers>

<server> <id>deploymentRepo</id> <username>repouser</username> <password>repopwd</password> </server><server> <id>siteServer</id> <privateKey>/path/to/private/key</privateKey> <passphrase>optional; leave empty if not used.</passphrase> </server>

<servers>

说明:

id:这是server的id(注意不是用户登陆的id),该id与distributionManagement中repository元素的id相匹配。username, password:这对元素表示服务器认证所需要的登录名和密码。

待续…

3.镜像(Mirrors)

<mirrors> <mirror> <id>Nexus</id> <mirrorOf>*</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>:8081/nexus/content/groups/public</url> </mirror> </mirrors>

说明:

id,name:该镜像的唯一定义符。id用来区分不同的mirror元素。

url:该镜像的url。构建系统会优先使用该url,而非使用默认的服务器url。

mirrorOf:被镜像的服务器的id。例如,如果我们要设置了一个Maven中央仓库( )

的镜像,就需要将该元素设置成central。这必须和中央仓库的id central完全一致。

注:这里配置mirrorOf的值为*,代表maven的所有访问请求都会指向到Nexus仓库组。

4.代理(Proxies)

描述:

1).使用代理:用户下载构件(Maven本地仓库)->代理仓库(在代理仓库中找不到构件,到转到中央仓库)–>中央仓库;

2).不使用代理:用户下载构件(Maven本地仓库)->中央仓库;

Nexus有默认的中央代理仓库,如果你需要添加其它的代理仓库的话,你需要在

settings.xml配置:

<settings>…<proxies> <proxy> <id>myproxy</id> <active>true</active> <protocol>http</protocol> <host>proxy.somewhere.com</host> <port>8080</port> <username>proxyuser</username> <password>somepassword</password> <nonProxyHosts>*.google.com|ibiblio.org</nonProxyHosts> </proxy> </proxies> … </settings>

id该代理的唯一定义符,用来区分不同的proxy元素。activetrue则激活代理。当我们声明了一组代理,而某个时候只需要激活一个代理的时候,该元素就可以派上用处。protocol, host, port该代理的protocol://host:port,(协议://主机名:端口),分隔成离散的元素以方便配置。username, password这一对元素表示代理服务器认证的登录名和密码。nonProxyHosts这里定义一个不该被代理的主机名列表。该列表的分隔符由代理服务器指定;上述的例子中使用了竖线分隔符,使用逗号分隔也很常见。

5.Profiles

settings.xml中的profile元素是pom.xml中profile元素的裁剪版本。它包含了activation,repositories,

pluginRepositories和properties元素。这里的profile元素只包含这四个子元素是因为这里只关心构建系统这个

整体(这正是settings.xml文件的角色定位),而非单独的项目对象模型设置。如果一个settings中的profile被激

活,它的值会覆盖任何其它定义在POM中或者profile.xml中的带有相同id的profile。

6.激活(Activation)

位于profile内部,且能够设置当满足某个条件时,激活profile。

file:文件存在时启动;

jdk:符合jdk版本时启动,如<jdk>1.5</jdk>;

os:符合系统版本时,其中还包含有子元素;

property:如果Maven检测到某一个属性(其值可以在POM中通过${名称}引用),其拥有对应的名称和值,,Profile就会被激活。

========

当然,你还可以通过其它方式来激活启动profile:

如settings.xml的子元素-

去追寻那飞翔的翅膀。落叶随风淡定了它漂泊的方向。

Maven settings细节

相关文章:

你感兴趣的文章:

标签云: