1. 为什么写这篇文章
公司用了私服。最新新项目需要整理依赖,更新一些依赖,然后发现换版本后依赖拉不下来的问题,找了同事也没有解决。拉不下来依赖和自己对于maven的认知有些出入,决定深入研究一下是私服问题还是自己配置的问题
2. 先了解maven settings.xml 的各个关键节点
- localRepository 本地仓库的位置
- offline 是否离线工作
- pluginGroups、proxies、interactiveMode 没用到过,中文翻译是,插件组、代理、交互模式true
- servers 使用私服的话非常关键
- server 服务器配置(多个)
- id 类似与拦截器匹配规则,用于匹配某个仓库
- username 私服用户名
- password 私服密码
- server 服务器配置(多个)
- mirrors 使用的镜像(多个)
- mirror 镜像、一般配置一个中央公共库, 阿里云maven配置指南
- id 镜像id,尽量唯一吧
- name 名字,这个可以唯一
- url 中央库地址
- mirrorOf (重要),类似拦截器,*(所有仓库),!仓库id(排除某个仓库),通过该设置可以配置从哪里获取jar包(我的值: *,!nexus-releases,!nexus-snapshots)
- mirror 镜像、一般配置一个中央公共库, 阿里云maven配置指南
- profiles 多环境配置(多个)
- profile 一个环境
- id 环境id
- repositories 环境下的多个仓库 (多个)
- repository 一个仓库
- id 仓库id
- url 仓库url
- releases.enabled 是否发布版依赖
- snapshots.enabled 是否快照依赖
- repository 一个仓库
- properties 多组键值对,可以配置账号名密码
- profile 一个环境
- activeProfiles 默认使用的环境(多个)
-
- activeProfile profile节点id,profiles[0].id
3. 整理配置文件
我的settings.xml 也是同事给的,settings.xml里面有个公司自建的私服,没用了(微服构建产物不往这里放),这种我清理了。
- 确认私服仓库地址是对的,settings.xml profile.repository.url 配置,或者pom.xml distributionManagement的url配置
- 确认私服账号是对的,servers节点配置
- 添加中央库mirrors镜像 加入aliyun 的镜像库后就可以了,换了几个hutool版本,项目都可以正常运行
延伸
- 把私服仓库地址放在项目pom.xml中,私服账号密码放在settings.xml中会好一点吗?
人总不能一直工作的!工作是做不完的,该休息的时候一定要好好休息。劳逸结合才是正道!