0
点赞
收藏
分享

微信扫一扫

idea配置maven 配置文件不生效问题

中间件小哥 2022-01-05 阅读 178

idea 最近遇到一个很奇怪的问题,执行mvn test 命令

mvn test -pl seed-loges-provider -am
(这个命令是将项目发布到容器中,这块不细说,其实就是maven做cicd的应用)

正常应该是这样的日志

但是实际执行的结果却是错误的 

看日志报错很明显是maven的配置有问题,读取了错误的配置,为了验证这个想法,我通过一个方法去验证

直接通过idea 自带的test去执行,执行成功没有报错,观察实际执行的命令; 

通过看打印日志分析启动的命令如下

核心的配置有 -Dmaven.home=D:\apache-maven-3.5.2 

D:\apache-maven-3.5.2\conf\settings.xml -Dmaven.repo.local=D:\env\maven\repository

分析可以得到一个结论:用idea自带的命令 是会直接指定了maven的配置参数,用原生的mvn命令则不会

那么这些指定参数是从哪里来的呢?理论上应该是idea配置maven得到的,改一下idea的默认配置,再试一下,结果也是当然的,idea 的命令是读的 idea的maven配置

 反复测试了基础,那么问题原因基本上可以确认了,使用原生的maven命令是不会用maven的配置参数,应该是用了缺省的配置或者是更高优先级配置文件;

(中途测了多种方法,比如各种重启了idea,重新设置mavne环境变量,重新下载manen版本均不行)

回想了下,看到maven默认的配置是${user.home}/.m2/settings.xml,是不是这个配置呢?

果然试一下,把${user.home}/.m2/settings.xml 这个配置修改,在执行命令,完美,确实默认配是这个,问题解决;

到了这一步其实已经结束了,但是好奇看下这个maven的优先级是怎么样的,翻了一下官方问的文档,是这么 写的

翻译一下,settings.xml存在于两个地方:

1.安装的地方:$M2_HOME/conf/settings.xml

2.用户的目录:${user.home}/.m2/settings.xml

前者又被叫做全局配置,后者被称为用户配置。如果两者都存在,它们的内容将被合并,并且用户范围的settings.xml优先。

 

OK问题全部解决

举报

相关推荐

0 条评论