首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

解决maven工程无法获取远程仓库下的构件

2012-10-14 
解决maven工程无法获取远程仓库上的构件工程结构:test-aggregatortest-parenttest-son其中test-aggregator

解决maven工程无法获取远程仓库上的构件
工程结构:

test-aggregator
test-parent
test-son

其中test-aggregator是聚合工程,用于把所有子工程的构建过程串起来,并充当parent工程,定义公共的配置和变量。test-son依赖于test-parent

现象:

如果将所有工程都下载到本地,然后从task-aggregator里执行maven package,整体构建可以成功

但是如果仅下载test-son,然后从test-son里执行maven package,则构建失败,报错:
[ERROR] Failed to execute goal on project test-son: Could not resolve dependenci
es for project net.kyfxbl.test:test-son:jar:0.0.1-SNAPSHOT: Could not find artif
act net.kyfxbl.test:test-parent:jar:0.0.1-SNAPSHOT -> [Help 1]

实际上这个时候在远程仓库里已经有test-parent的构件了



当maven执行构建时,如果引入了依赖,首先会到本地仓库找,如果本地仓库找不到,则会去远程仓库找。如果远程仓库也没有找到,则构建报错

这里由于只下载了test-son,并且此前没有在本地构建过test-parent,所以本地仓库里没有test-parent的构件。但是远程仓库里明明有,却获取不到,就比较奇怪了

原因如下:

首先我们的settings.xml里配置了一个镜像,将对中央仓库的请求,转发到nexus私服上

<!-- 覆盖central的设置,允许下载snapshot的构件 --><repositories><repository><id>central</id><name>Maven Central Repository</name><url>http://repo1.maven.org/maven2</url><snapshots><enabled>true</enabled></snapshots></repository></repositories>

最后综合考虑,还是选择了后一种方案

热点排行