maven setting.xml文件配置详情

1 首先,setting.xml一般存在与两个地方:maven的安装目录/conf/,和${user.home}/.m2/下。他们的区别是在maven安装目录下的setting.xml是所有用户都可以应用的配置,而user.home下的可想而知就是针对某一用户的配置(推荐是在user.home下)。如果两个都进行了配置,则在应用的时候会将两个配置文件进行中和,而且user.home下的setting.xml优先级大于maven安装目录下的。

2 setting.xml文件中顶层元素一览:

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <span style="font-family:Microsoft YaHei;"><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"  
  2.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0  
  4.             http://maven.apache.org/xsd/settings-1.0.0.xsd">  
  5.     <localRepository/>  
  6.     <interactiveMode/>  
  7.     <usePluginRegistry/>  
  8.     <offline/>  
  9.     <pluginGroups/>  
  10.     <servers/>  
  11.     <mirrors/>  
  12.     <proxies/>  
  13.     <profiles/>  
  14.     <activeProfiles/>  
  15. </settings></span>  


下面对各个元素进行解析:

2.1 localRepository

建构系统本地仓库的路径,不设置的话默认是在{user.home}/.m2/repository/下,如果想要系统所有用户共用一个本地仓库,则可以在maven安装目录下的setting.xml中进行设置

2.2 interactiveMode

指定Maven是否试图与用户交互来得到输入,默认是true

2.3 usePluginRegistry

如果设置为true,则在{user.home}/.m2下需要有一个plugin-registry.xml来对plugin的版本进行管理。默认是false

2.4 offline

如果不想每次编译的时候都去查找远程中心仓库,就需要设置为true,但前提是本地仓库中已有需要的jar包,默认是false

2.5 pluginGroups

该元素包含一系列的pluginGroup元素,每个pluginGroup又有一个groupId,当一个plugin被使用而在命令行中哦给没有指定groupId的时候,就会查询这个列表

2.6 Servers

maven除了一般的本地仓库和中央仓库之外,还有一种是远程仓库,一般部署在局域网中供Maven用户使用(成为私服),当maven需要下载构件的时候,它先从私服中请求,如果没有,再到外部的中央仓库中下载,同时下载的构件会在下载到私服中供以后使用,或者用户可以将将构件上传到私服中。

私服还有一个好处就是存放组织内部自己生成的私有构件,这类构件不可能从外部的中央仓库获取,但是组织内部用户又需要共享使用,这个时候就需要私服了。

一般私服建立完毕之后不需要认证就可以访问,但是处于安全方面的考虑,需要提供认证信息才能访问这些私服,这时就需要使用servers元素(需要注意的是配置私服的信息是在pom文件中,但是认证信息则是在setting.xml中,这是因为pom文件往往是被提交到代码仓库中供所有成员访问的,而setting.xml是存放在本地的,这样是安全的)。

而maven是根据pom中的repositories和distributionMnagement元素来决定,然后运行maven clean deploy,这样maven就根据pom中的配置将自己的第三方构件部署在私服上供组织内其他用户使用(注意maven clean deploy和maven clean install的区别:deploy是将该构件部署在私服中,而install是将构件存入自己的本地仓库中)。

2.7 morriors

显而易见,镜像,也供maven下载jar包

2.8 proxies

当用户 用代理登录下载时需要配置(但是我现在是在使用代理,可是还是没有作用,原因未知?)

2.9 profiles(??)

2.10 activeProfiles(??)

原文地址:https://www.cnblogs.com/laobiao/p/5588874.html