3

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

 1 year ago
source link: https://blog.51cto.com/fengyege/5906192
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

精选 原创

枫夜求索阁 2022-12-02 10:48:47 博主文章分类:java系列 ©著作权

文章标签 maven idea 依赖 文章分类 Java 编程语言 私藏项目实操分享 阅读数164

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

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

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种姿势_maven_02

在项目的​​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种姿势_依赖_03
问题解决:尝试解决maven依赖找不到的n种姿势_依赖_04

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK