【发布时间】:2012-02-09 16:47:15
【问题描述】:
我有一个简单的多项目层次结构:
root/
pom.xml
project-a
pom.xml
subproject-a.1
pom.xml
subproject-a.2
pom.xml
project-b
pom.xml
subproject-b.1
pom.xml
subproject-b.2
pom.xml
如果我从命令行构建一个项目(例如 subproject-b.1),该项目将构建 find。但是,从 Jenkins 那里,同一个项目将失败并显示:
[FATAL] Non-resolvable parent POM: Could not find artifact com.foo.bob:project-b:pom:1 in releases (http://xxxx.foo.com:9080/libs-release) and 'parent.relativePath' points at wrong local POM @ line 7, column 13
既不是根也不是 project-a/project-b 模块,只是子项目。我确实看过:Hudson build fail: Non-resolvable parent POM 并确保我父母的 relativePath 设置为:
<relativePath>../pom.xml</relativePath>
关于我需要添加到我的 pom.xml 以使 Maven 与 Jenkins 良好配合的想法?
【问题讨论】:
-
您是否在父 pom.xml 中将
设置为您的子项目 -
在哪个阶段失败了?是否有可能不是 subproject-b1 的构建,而是它的父级的构建失败?我想知道在尝试从 subproject-b1 位置解析父 relativePath 时,根项目实际上是否是 ../../pom.xml (在 project-b/pom.xml 内)
-
您使用的是什么版本控制系统?以 subversion 为例,可以只检出子项目。如果是这样的话,相对路径对 Jenkins 来说没有意义。
-
关于问题一,是的。根 pom.xml 看起来像这样:'
' 在父 pom.xm 之一中,它是:'project-a project-b '。它在子项目中失败,上层项目不可构建,我有父 pom.xml 文件来保存公共材料。关于您的第二个问题,它在子/子项目文件中失败。在子/子项目文件中,相对路径设置为下一个直接 pom.xml。subproject-a.1 subproject-a.2 -
是的,它是颠覆。所以要使用 Jenkins、Subversion 和父 pom.xml 文件,我必须为每个构建从根目录中提取整个源代码树?