在笔者开发项目的过程中,遇到了一个maven导不下来包的问题,并被困扰了很长时间,原因是maven的settings.xml设置出了一些问题。

今天来讲一下这个问题,来为大家避避坑。

settings.xml是用来配置和管理maven自身配置到的设置文件。一般每个公司都会有自己的settings.xml,这个文件可以直接找同事要一份。

笔者用IDEA开发项目,maven用了自己安装的maven,所开发的项目主要用到的项目依赖大多来自公司的私有仓库,settings就找同事要了一份,并放在了“user settings file”所示的路径下(D:\Users\admin\.m2\settings.xml)。

与此同时,笔者又配置了自己安装的maven中conf目录下的settings.xml,其路径为

D:\packages\apache-maven-3.3.9\conf),在其中设置了阿里云的镜像。

在此之后,每当拉项目的时候,总是有包拉不到(这些拉不到的包都在公司的私仓),

并显示如下错误:

“Could not find artifact com.***:****n4j:pom:2.5.0 in nexus-aliyun”

从以上可得出结论:

maven使用的是maven所在目录D:\packages\apache-maven-3.3.9\conf下的settings.xml

而不是“user settings file”中所设置路径下的settings.xml(配置公司私仓的)。

注意:

所以大家在使用maven的时候,一定要注意这两个地方,原本以为(其实是听同事讲的)maven会直接使用user settings file中设置的settings.xml(不要听人瞎说就当真)。

自己也试验了以下,在 maven安装目录conf中没有settings.xml时,会使用user settings file中设置的settings.xml。

感觉“user settings file:”中设置的就是一个备用的settings.xml。

建议:

maven安装目录conf中的settings.xmluser settings file中设置的settings.xml保持一致。

如下图所示,在IDEA中的settings(ctrl+Alt+s)中的maven设置页面,在Maven home path选项可以选择maven的类型,系统自带的或者是自己安装的,user settings file中设置settings.xml,local repository中设置本地仓库地址。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐