2017-06-03 38 views
0

我有一个名为X的maven项目,它有两个子罐子,名为: Xa和Xb。当我构建X时,该jar包含Xa和Xb。我刚把X推到了Nexus上。我也推Xb到Nexus,因为一个单独的项目,Y取决于它。 我已将X的新版本推送到Nexus X-1.2。因此,XB-1.2的新版本也被推向了Nexus。在项目Y中,我想使用这个新版本的XB(XB-1.2),所以我更新Y的POM以反映这一点。当我建立Y,我得到如下:Maven寻找不存在的神器

无法读取的com.Xb神器描述:XB:罐子:1.2:不 找到com.X:X:POM:1.2 http://nexus.abc.extranet.group/nexus/content/groups/maven-123是 在本地仓库缓存,分辨率不会重新尝试 直到ABC的更新间隔已过或更新强制 - > [说明1]

我感到困惑是这一行:

找不到神器com.X:X:POM:1.2

为什么行家试图寻找一个叫X1.2罐子时,我的聚甲醛是Y不依赖于它。当然,X1.2是Xb1.2的父项目,但是X1.2已经被推到了Nexus上,因为它是自己的工件。 当我查看Nexus时,看不到名为X1.2的工件。当我打开XB的pom时,我发现它引用了它的父亲X1.2 - 这是非常神器的maven找不到的东西。为什么要寻找XB的父母?

项目X几个月来一直以这种方式成功建设。我遇到的问题是,只有当我在项目Y.颠簸XB版本

编辑:我发现了错误的X项目建设:

[INFO]搜索本地聚合根... [INFO]本地聚合 根:/家庭/ SC-詹金斯/工作区 com.x的/ X [INFO]处理的变化:X:1.1 - > 1.2 [ERROR] java.io.FileNotFoundException: /home/jenkins/workspace/x/x(没有这样的文件或目录)

上述目录中的额外x ath必须引起问题。

回答

0

我觉得你的问题有点混乱,但我尽量是最好的,我可以回答:如果你的项目Ÿ依赖于预算外具有父POM X,则X必须有作为。原因是:Maven可以及时地解决依赖关系,而父类poms也可以定义(或改变)依赖关系。这意味着Xb的依赖关系可以在父pom中定义,Maven需要查看。

+0

这是有道理的X必须有作为,但我不;吨了解暴沸XB的版本会出现这种问题。我将Xb撞到Xb1.2的原因是因为Ops团队中的某个人删除了Xb1.1。也许他们也删除了X1.1和X1.2尚未创建。 – TheCoder