问题描述:
自己修改了下 ${M2_HOME}/conf/settings.xml
中的本地repository地址
,但是重新执行mvn的时候发现repository地址并没有改变
。那么问题所在?
1 settings.xml文件位置
settings.xml文件一般存在于两个位置:
全局配置: ${M2_HOME}/conf/settings.xml
用户配置: user.home/.m2/settings.xml
(note:用户配置优先于全局配置。)
2 配置优先级
需要注意的是:局部配置优先于全局配置。
配置优先级从高到低:pom.xml> user settings > global settings
如果这些文件同时存在,在应用配置时,会合并它们的内容
,如果有重复的配置,优先级高的配置会覆盖优先级低的
。
自己遇到的问题刚好验证了上面优先级的说法。修改~/.m2/settings.xml中的地址后变正常了。
解决Maven修改setting.conf配置添加修改镜像库不生效的问题
问题描述
有时候出现一种奇怪的问题,就是无论如何修改远程库,镜像库的地址,好像都不生效
。
下面给出排查方法与思路。
解决步骤
1、首先检查eclipse或者IDEA中配置的settings文件是否是自己编辑的那个文件
。
2、如果是,那么检查配置的镜像库mirror
,看是否有mirrorOf配置的是*
,这个值表示匹配所有的镜像库,相当于会屏蔽掉配置的其他的镜像库
。
3、注意配置的优先级,pom 配置 > settings中的配置
,同时检查项目 .m2 文件夹中有没有项目的 settings 配置
user settings(自己项目中的配置) > global settings(idea settings 窗口中 maven 的 settings 配置)
4、如果配置没有问题,那么检查settings文件是否有语法错误
。特别是当出现不管怎么改远程库地址,拉取jar的时候都跑去中央仓库下载的现象时
。有时候频繁修改或者复制粘贴,导致settings文件语法出现了错误。可以在命令行执行下面的命令,如果有语法错误,会得到提示。
mvn help:effective-settings
5、如果还不行,检查idea中的maven配置,如下图,虽然制定了seting.xml的路径,但是有时候可能不生效
。把需要指定的setting.xml放到maven的conf下,覆盖掉原先的setting.xml
。2019.2 , 2019.3 版本的idea,会存在这个问题
。