0

我有一个项目在我的笔记本电脑上运行良好。今天我开始在我们的 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,则依赖于它们三个的项目的构建将构建良好。

我一定误解了使用子模块构建的一个重要细节。我错过了什么?

4

3 回答 3

1

使用强制更新选项运行 maven clean install,如下所示:

mvn 干净安装 -U

于 2015-11-19T20:58:20.133 回答
0

尝试执行 mvn -U install 以强制 mvn 访问您的 nexus 存储库以获取更新的 aritfacts 还使用 -e 开关运行 mvn 以查看详细的错误消息

于 2012-12-19T18:17:53.913 回答
0

您的层次结构可能已损坏。您可以通过在擦除本地存储库后在本地计算机中构建它来测试它。您很可能会发现与构建机器相同的故障。

要修复它,我建议删除所有相对路径元素并调整结构,以便构建可以正常工作。理想情况下,您甚至可以将纯父项目分解为单独的项目并将它们发布到您的存储库管理器中,以便任何其他构建从那里获取它们。

于 2012-12-19T18:12:32.487 回答