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到私有库中

时间: 2024-09-30 04:21:53

maven无法下载私有库中的jar包的相关文章

maven依赖本地非repository中的jar包-依赖jar包放在WEB-INF/lib等目录下的情况客户端编译出错的处理

maven依赖本地非repository中的jar包 http://www.cnblogs.com/piaolingxue/archive/2011/10/12/2208871.html 博客分类: MAVEN 今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入. 在eclipse中开发没有问题,但是使用maven编译插件开始便宜总是报找不到WEB-INF

maven依赖本地非repository中的jar包

http://www.cnblogs.com/piaolingxue/archive/2011/10/12/2208871.html 博客分类: MAVEN 今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入. 在eclipse中开发没有问题,但是使用maven编译插件开始便宜总是报找不到WEB-INF/lib这个jar包中的类. 显然实在编译的时候WEB

maven添加本地非repository中的jar包

1.今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入. 在eclipse中开发没有问题,但是使用maven编译插件开始便宜总是报找不到WEB-INF/lib这个jar包中的类. 显然实在编译的时候WEB-INF/lib并没有配置到maven-complier-plugin插件src目录中去, 于是将这个目录添加进去,还是不好使.无赖,先把这个jar包安装

maven依赖本地非repository中的jar包【转】

今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入. 在eclipse中开发没有问题,但是使用maven编译插件开始便宜总是报找不到WEB-INF/lib这个jar包中的类. 显然实在编译的时候WEB-INF/lib并没有配置到maven-complier-plugin插件src目录中去, 于是将这个目录添加进去,还是不好使.无赖,先把这个jar包安装到本

如何在maven中添加jar包

Maven 中央仓库地址: 1. http://www.sonatype.org/nexus/ 2. http://mvnrepository.com/ (本人推荐仓库) 3. http://repo1.maven.org/maven2 在maven中添加jar包: Maven是基于项目对象模型,提供程序构建能力.更是提供高级的项目管理工具.在开发中,我们能节约不少的磁盘开销能力,同步更新上传svn(只是一种)上的项目,也不用每次更新jar包,把jar包放在磁盘的某一处,项目中多次使用. 工具/

maven本地仓库中存在jar包,但编译不成功,显示jar包不存在

介绍一下背景,项目要迁移进坑人的离线的内网开发,将在同事那编译通过的代码和maven仓库拷进内网,打算编译通过之后再上传私服,结果配好maven之后,本地库中的部分jar包显示没有引入,如下面的波浪线 想到可能是idea提示的不正确,直接编译吧,结果编译失败,主要错误信息如下 [ERROR] Failed to execute goal on project zeus-common-redis: Could not resolve dependencies for project com.hsj

如何制作Jar包并在android中调用jar包

android制作jar包: 新建android工程,然后右击,点击导出,选择导出类型为Java下的JAR file,在java file specification 中不要选择androidmanifest.xml和res文件夹,就可以了.否则在调用jar包的时候会出现“Error generating final archive: Found duplicate file for APK: AndroidManifes”这个错误. 如果在android用调用jar包,需要在工程的属性的Jav

跟我学习dubbo-使用Maven构建Dubbo服务的可执行jar包(4)

Dubbo服务的运行方式: 1.使用Servlet容器运行(Tomcat.Jetty等)----不可取 缺点:增加复杂性(端口.管理) 浪费资源(内存) 官方:服务容器是一个standalone的启动程序,因为后台服务不需要Tomcat或JBoss等Web容器的功能,如果硬要用Web容器去加载服务提供方,增加复杂性,也浪费资源. 2.自建Main方法类来运行(Spring容器) ----不建议(本地调试可用) 缺点: Dobbo本身提供的高级特性没用上 自已编写启动类可能会有缺陷 官方:服务容器

在Android Studio中导入jar包

#1 下载jar包文件, #2 拷贝到libs目录下 #3 打开你的build.gradle,在dependencies加入如下代码 dependencies {compile files('libs/android-support-v4.jar')compile files('libs/android-async-http-1.4.3.jar')//或者你想偷懒可以只写下面这一句,所有libs文件下的jar都会被编译compile fileTree(dir: “libs”, include: