maven无法下载私有库中的jar包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven无法下载私有库中的jar包相关的知识,希望对你有一定的参考价值。

前两天同事遇到一个问题:

同一个工程,依赖私有库中的一个jar包,其他同事的项目都能成功下载,但只有他的项目无法正常下载依赖,最后虽然找到原因了,但还是在这里备注一下:

1、maven依赖管理

maven通过GAV坐标对项目依赖进行管理,如果有公司内部有私有库存在的话,依赖查找的顺序是这样的:本地仓库-->私有仓库-->中央仓库(这是没有配置mirror拦截的情况);如果在setting中配置了mirror,且mirrorOf配置为*,url指向私有库路径,则查找顺序是这样的本地仓库-->私有仓库(-->中央仓库),即:对中央仓库查找依赖的发起方不同

2、maven依赖路径

依赖路径指的是项目结构parent的继承顺序,一般情况下,项目的maven模块只会分成2级,即:

maven-project-parent(pom)

---maven-project-api(jar)

---maven-project-core(jar)

---maven-project-web(war)

当然也有多级的情况:

maven-project-parent(pom)

---maven-project-loan-parent(pom)

------maven-project-loan-api(jar)

------maven-project-loan-core(jar)

------maven-project-loan-web(war)

---maven-project-invest-parent(pom)

------maven-project-invest-api(jar)

------maven-project-invest-core(jar)

------maven-project-invest-web(war)

3、maven下载依赖包顺序

下载顺序就是根据依赖路径来进行下载的,比如上图中多级项目中的maven-project-invest-api项目如果依赖于如下项目中的dependency-project-api项目:

dependency-project-parent

---dependency-project-api

---dependency-project-core

---dependency-project-web

但此项目中只有api包才被deploy到maven私有库中,所以根据依赖下载顺序,项目首先回去下载dependency-project-api的父pom---dependency-project-parent,但私有库中没有,于是就会出现此私有库中有dependency-project-api.jar,但无法下载jar包的问题,

4、解决方案:

(1)如果有源代码的话,直接将dependency-project-parent代码clone到本地,然后install到本地仓库中解决依赖

(2)将dependency-project-parent重新deploy到私有库中

本文出自 “从普通程序员到CTO” 博客,请务必保留此出处http://1730634.blog.51cto.com/1720634/1746252

以上是关于maven无法下载私有库中的jar包的主要内容,如果未能解决你的问题,请参考以下文章

怎么将 服务器 maven库中的所有的jar 下载到本地的计算机上,带目录结构的 ,是所有的

解决maven无法下载jar的问题

Maven无法下载JAR包

maven的本地仓库的jar包是怎么来的

使用Nexus创建Maven私有仓库

Eclipse|Maven:无法下载jar包源代码?