问题解决:尝试解决maven依赖找不到的n种姿势

时间:2022-12-02 12:13:42

问题场景

公司的原仓库出了问题,需要更换新的仓库。故给了一个新的仓库地址。但是奇葩的是,更换之后,就出问题了。比如原本有​​A-0.0.1-SNAPSHOT.jar​​​,在私服上面也有这个版本的​​jar​​​包,但是就是没办法找到,一直提示该​​jar​​的该版本找不到。

问题解决:尝试解决maven依赖找不到的n种姿势

问题环境

软件

版本

maven

3.2.3

IntelliJ IDEA

2019.1

问题原因

接下来就是探索发现之旅了。

  1. 因为是更新了​​setting​​​文件,所以怀疑是没有选对文件。在 ​​idea​​​的​​setting​​​上面搜索​​maven​​​,查看相关的选项,看到是选对了​​settings.xml​​。这个尝试失败;
  2. 因为是使用​​idea​​​,所以怀疑是不是工具没有更新依赖,于是我将整个项目的 ​​maven​​​依赖重新导入,即​​reimport​​。很遗憾,没有解决问题;
  3. 因为之前有遇到一个奇葩的问题,怎么​​reimport​​​都失败,而使用​​idea​​​的​​maven​​​插件的​​compile​​​命令,反而触发了依赖下载。所以,我点击了​​compile​​,很遗憾,也不行;
  4. 怀疑是​​idea​​​关于​​maven​​​的配置有问题,比如在​​maven​​​的编辑页面,不小心或者其他因素导致​​Work offline​​被勾选上了,那就导致依赖只会从本地找,而不是从私服找。打开一看,我的配置很正常。哎,这一步也尝试失败。
  5. 这个时候,有点怀疑是不是远程仓库是不是没有这个​​jar​​包,所以登录公司的私服,到对应的地址找。诶,这个版本下面怎么有这么多以时间戳命名的包,难道我还得以特定的时间戳版本下载吗?这个不科学,要知道这个版本是开发版本,是会随时更新的。所以这是什么回事呢???

到这里,我们就说到正题了,这个就涉及​​maven​​​的高级配置了。在实际开发过程中,我们经常会遇到版本依赖的场景。比如​​服务A​​​依赖​​服务B​​​,而​​服务B​​​处于开发阶段。假如​​服务B​​​的当前版本是​​1.0​​​,而​​服务A​​​指定依赖了​​服务B​​​的版本​​1.0​​​。过了一段时间,​​服务B​​​发现了​​bug​​​,并进行修复了,所以升级为​​2.0​​​。这样,​​服务A​​​就得同时将​​服务B​​​的版本升级为​​2.0​​​,不然就可能出现问题。如果一直持续下去,我相信开发人员都会想吐血的。所以,这个时候就得引入​​maven​​​的​​Snapshot​​​版本机制。在开发过程中,​​服务B​​​指定了对应的​​Snapshot​​​版本,比如​​0.0.1-Snapshot​​​,而​​服务A​​​进行​​依赖B​​​的时候就指定其​​Snapshot​​​版本。​​服务B​​​每次迭代更新的时候,发布到私服仓库的时候,都会形成带有​​时间戳​​​命名的​​Snapshot​​​版本,而​​服务A​​​在构建的时候,都会下载​​服务B​​​带有最新​​时间戳​​​的​​Snapshot​​​版本。这样,问题就得到了完美解决。比如下图就是​​服务B​​​带有​​时间戳​​​的​​Snapshot​​版本截图。

问题解决:尝试解决maven依赖找不到的n种姿势

解决方案

在项目的​​pom.xml​​文件,里面加上这些配置:

<repositories>
<repository>
<id>maven-releases</id>
<name>maven-releases</name>
<url>http://test.com:2000/repository/maven/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>

结果

项目依赖顺利下载下来了,项目编译也没有问题了。看到项目​​pom.xml​​​文件没有标红的时候,十分开心 ​​٩(๑❛ᴗ❛๑)۶​

总结

开发过程中,总是会遇到各种问题。即使解决了,也得找到问题解决的原因。知其然才能有技术沉淀,当然也得记录下来。不然下次遇到相同的问题,也会忘记的 ​​(๑╹◡╹)ノ"""​

参考链接

​Maven: working with multiple repositories​

​Maven Settings​

​Maven: introduction to repositories​

吐槽

​CSDN​​​的博客系统让我遇到一个​​bug​​​,写的时候,右边的预览图没有变化,我以为是​​js​​​没有生效,也没有怎么理。写了一阵子,点击了保存草稿,然后退出。重新打开的时候,竟然后面没有预览出来的文字都不见了 ​​╮(╯﹏╰)╭​​​ 那一刻,真是想投诉CSDN的开发人员​​ ̄へ ̄​​​!!!所以,下次遇到这种情况,得先把文章都复制出来放到其他文档备份,然后重新打开。这个也是给其他博主踩雷了​​(^_−)☆​

PS:随缘求赞、关注

如果我的文章对大家产生了帮忙,可以在文章底部点个赞或者收藏;

如果有好的讨论,可以留言;

如果想继续查看我以后的文章,可以点击关注

也可以扫描以下二维码,关注我的公众号:枫夜之求索阁,查看我最新的分享!

问题解决:尝试解决maven依赖找不到的n种姿势


问题解决:尝试解决maven依赖找不到的n种姿势