我有一个项目在我的笔记本电脑上运行良好。今天我开始在我们的 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://中找到 com.example.cde:project-parent:pom:1.0.0 hostname.net:8081/nexus/content/groups/stuff已缓存在本地存储库中,直到 nexus 的更新间隔已过或强制更新并且“parent.relativePath”指向本地 POM @ 行之前,不会重新尝试解析6,第 11 列 -> [帮助 2]
“java-project-parent”是父层次结构中的 pom 之一。
我发现在顶级聚合器 pom 中运行“mvn install”实际上并没有在子模块中安装工件。当我查看本地 repo 时,本地 repo 中每个目录中唯一的东西就是像“... pom.lastUpdated”这样的文件。实际的 POM 不存在。
当我让管理员在第一个子模块中手动运行“mvn install”时,实际上将 POM 安装到本地存储库中。我有一种感觉,如果他手动安装其他两个父 pom,则依赖于它们三个的项目的构建将构建良好。
我一定误解了使用子模块构建的一个重要细节。我错过了什么?