![](/style/images/good.png)
![](/style/images/bad.png)
问题解决:尝试解决maven依赖找不到的n种姿势
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种姿势
精选 原创公司的原仓库出了问题,需要更换新的仓库。故给了一个新的仓库地址。但是奇葩的是,更换之后,就出问题了。比如原本有A-0.0.1-SNAPSHOT.jar
,在私服上面也有这个版本的jar
包,但是就是没办法找到,一直提示该jar
的该版本找不到。
maven | 3.2.3 |
IntelliJ IDEA | 2019.1 |
接下来就是探索发现之旅了。
- 因为是更新了
setting
文件,所以怀疑是没有选对文件。在 idea
的setting
上面搜索maven
,查看相关的选项,看到是选对了settings.xml
。这个尝试失败; - 因为是使用
idea
,所以怀疑是不是工具没有更新依赖,于是我将整个项目的 maven
依赖重新导入,即reimport
。很遗憾,没有解决问题; - 因为之前有遇到一个奇葩的问题,怎么
reimport
都失败,而使用idea
的maven
插件的compile
命令,反而触发了依赖下载。所以,我点击了compile
,很遗憾,也不行; - 怀疑是
idea
关于maven
的配置有问题,比如在maven
的编辑页面,不小心或者其他因素导致Work offline
被勾选上了,那就导致依赖只会从本地找,而不是从私服找。打开一看,我的配置很正常。哎,这一步也尝试失败。 - 这个时候,有点怀疑是不是远程仓库是不是没有这个
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](https://s2.51cto.com/images/blog/202212/02103815_6389651753b6983393.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=,x-oss-process=image/resize,m_fixed,w_1184/format,webp)
在项目的pom.xml
文件,里面加上这些配置:
<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: introduction to repositories
CSDN
的博客系统让我遇到一个bug
,写的时候,右边的预览图没有变化,我以为是js
没有生效,也没有怎么理。写了一阵子,点击了保存草稿,然后退出。重新打开的时候,竟然后面没有预览出来的文字都不见了 ╮(╯﹏╰)╭
那一刻,真是想投诉CSDN的开发人员 ̄へ ̄
!!!所以,下次遇到这种情况,得先把文章都复制出来放到其他文档备份,然后重新打开。这个也是给其他博主踩雷了(^_−)☆
PS:随缘求赞、关注
如果我的文章对大家产生了帮忙,可以在文章底部点个赞或者收藏;
如果有好的讨论,可以留言;
如果想继续查看我以后的文章,可以点击关注
也可以扫描以下二维码,关注我的公众号:枫夜之求索阁,查看我最新的分享!
![问题解决:尝试解决maven依赖找不到的n种姿势_依赖_03](https://s2.51cto.com/images/blog/202212/02103932_638965642156147081.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=,x-oss-process=image/resize,m_fixed,w_1184/format,webp)
![问题解决:尝试解决maven依赖找不到的n种姿势_依赖_04](https://s2.51cto.com/images/blog/202212/02103932_638965642f27716319.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=,x-oss-process=image/resize,m_fixed,w_1184/format,webp)
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK