maven的settings配置不生效

最近更换了maven仓库后,发现仍然是从原来的仓库拉取jar包。修改settings.xml文件名等方式仍然不生效。

通过mvn help:effective-settings命令查看配置,发现与当前使用的配置文件 ~/.m2/settings.xml不一样。然后再查看全局的settings.xml(maven安装目录下),才找到了问题。原来旧的仓库配置在全局的settings.xml中也有一份。

将全局settings.xml恢复为默认配置,删除本地仓库下的jar包之后重新拉取,这次就正常了。

配置优先级

Maven仓库配置一般在3个地方:项目工程的pom.xml文件;用户配置,默认位于~/.m2/settings.xml;全局配置,即maven的settings.xml。

配置优先级从高到低:pom.xml > user settings > global settings。如果这些配置同时存在,在应用配置时,会合并它们的内容。这也是本文中一开始遇到的问题所在。如果有重复的配置,则优先级高的配置覆盖优先级低的配置。

settings.xml元素详解

settings.xml中的顶级元素如下:

 
 
 
 
 
 
 
 
 
 
 

localRepository
该值表示构建系统本地仓库的路径。默认为:~/.m2/repository。
interactiveMode
该值表示maven是否需要和用户交互以获得输入。默认为True。
usePluginRegistry
该值表示maven是否需要使用plugin-registry.xml文件来管理插件版本。如果需要让maven使用文件~/.m2/plugin-registry.xml来管理插件版本,则设为true。默认为false。
offline
标识maven是否需要在离线模式下运行。当由于网络或安全原因,构建服务器不能连接远程仓库的时候,就需要配置该项。默认为false。
pluginGroups
当插件的组织id(groupId)没有显式提供时,供搜寻插件组织id的列表。该元素包含了一个pluginGroup元素列表,每个子元素包含了一个组织id。如下所示:

 
... 
 
  
 org.codehaus.mojo 
 
... 


servers
一般,仓库的下载和部署是在pom.xml文件的repositories和distributionManager元素中定义的。但是,类似用户名,密码(有些仓库访问需要安全认证)这些敏感信息不应该在pom.xml中暴露,因此将它们配置到settings.xml中。说明如下:

  
  
	  
	 server001 
	 
	 my_login
	 my_password
	 
	  
	 664
	 775
	  --> 
  

mirrors
表示镜像库。说明如下:

 
   
	  
	 planetmirror.com 
	  
	 PlanetMirror Australia 
	 
	 http://downloads.planetmirror.com/pub/maven2 
	  
	 central 
 

proxies
用来配置不同的代理。说明如下:

 
  
     
	 myproxy 
	  
	 true
	  
	 http 
	  
	 proxy.somewhere.com
	 
	 8080  
	 proxyuser 
	  
	 somepassword 
	  
	 *.google.com|ibiblio.org 
  

profiles
根据环境参数来调整构建配置的列表。settings.xml中的profile元素是pom.xml中profile元素的裁剪版本。它包含了id、activation、repositories、pluginRepositories和 properties元素。如果一个settings.xml中的profile被激活,它的值会覆盖任何其它定义在pom.xml中带有相同id的profile。说明如下:


   
 
test 
 
 
 
 
 
 
 
 
 

通常情况下,整个settings最主要的就是profiles元素,它指定了远程仓库地址。而profiles下最基本的,也是必须的元素是:id,repositories和pluginRepositories。
activeProfiles
手动激活profiles的列表,按照profile被应用的顺序定义activeProfiles。如下所示:

  	
 test 


参考资料

[1].https://www.cnblogs.com/jingmoxukong/p/6050172.html

你可能感兴趣的:(工具)