【发布时间】:2012-12-19 18:08:25
【问题描述】:
我有一个在我的笔记本电脑上运行良好的项目。今天我开始在我们的 Bamboo 服务器上为此设置构建。一切都已签入。我的笔记本电脑和构建服务器都使用 Maven 3.0.4。
我有一个顶级聚合器 pom,它指定了几个模块,但这个 pom 不是任何模块的父级。我确实使用了父 pom,但这些父母位于依赖它们的子模块的对等子模块中,并且我在所有 pom 中都有空白的“relativePath”元素。
在顶级聚合器 POM 的 Bamboo 构建中,我看到几个类似这样的错误:
[错误] 项目 com.example.cde:java-project-parent:1.0.1 (/volatile/bamboo/bamboo3.4.3_data/xml-data/build-dir/FOO-BUILD-JOB1/java- project-parent/pom.xml) 有 1 个错误 2012 年 12 月 18 日 16:40:21 [错误] 不可解析的父 POM:未能在 http://hostname.net:8081/nexus/content/groups/stuff 中找到 com.example.cde:project-parent:pom:1.0.0 已缓存在本地存储库中,解决方法将直到 nexus 的更新间隔过去或强制更新并且'parent.relativePath' 指向没有本地 POM @ 第 6 行第 11 列 -> [帮助 2]
之前不会重新尝试“java-project-parent”是父层次结构中的 pom 之一。
我发现在顶级聚合器 pom 中运行“mvn install”实际上并没有在子模块中安装工件。当我查看本地 repo 时,本地 repo 中每个目录中唯一的东西就是像“...pom.lastUpdated”这样的文件。实际的 POM 不存在。
当我让管理员在第一个子模块中手动运行“mvn install”时,它实际上将 POM 安装到本地存储库中。我有一种感觉,如果他手动安装其他两个父 pom,则依赖于它们三个的项目的构建将构建良好。
我一定误解了使用子模块构建如何工作的一个重要细节。我错过了什么?
【问题讨论】: