构建多个 Maven 项目

Posted

技术标签:

【中文标题】构建多个 Maven 项目【英文标题】:Build multiple Maven projects 【发布时间】:2011-03-23 13:46:30 【问题描述】:

我是 Maven 新手,对有疑问。

我们有两个 Maven 项目,项目 A 和项目 B。

项目 A 依赖于项目 B 生成的工件。

当对项目 A 或 B 的更改签入 SVN 时,我们的本地 Hudson 服务器会构建修改后的项目(以及任何依赖项目)并将工件上传到我们的本地 Nexus 存储库中。

现在,考虑两个开发人员。

开发人员 1 仅破解项目 A,当开发人员 1 在本地构建项目 A 时,Maven 会从我们的 Nexus 服务器获取最新的项目 B 快照工件。

Developer 2 同时对项目 A 和项目 B 进行了 hack。当开发人员 2 在本地构建项目 A 时,我们希望 Maven 使用任何本地更改构建项目 B,并使用生成的工件来构建项目 A。我们如何设置 Maven 以使用项目 B 的本地版本进行构建,而不是从关系?这是 Maven 的标准使用模式吗?

【问题讨论】:

【参考方案1】:

我们如何设置 Maven 以使用项目 B 的本地版本进行构建,而不是从 Nexus 获取人工制品?

您可以为每个repository 的快照工件设置updatePolicy。实际上,默认,Maven 每天只检查一次 SNAPSHOT 更新。因此,如果您在本地构建 B 版本,您应该能够在一段时间内使用它来构建 A,即使您的 Nexus 部署了新的 SNAPSHOT。如果这不符合您的需要,您可以更改此政策。您也可以离线构建(使用-o 选项)。

PS:AFAIK,在 Maven 3.x 中默认禁用自动更新,您必须明确要求更新(使用 -U 选项)。

【讨论】:

以上是关于构建多个 Maven 项目的主要内容,如果未能解决你的问题,请参考以下文章

多个 Maven 项目针对一个公共时间戳发布

Ant 到 Maven - 多个构建目标

IDEA中MAVEN项目有多个子目录,如何加载构建

Maven实现多个项目关联自动化构建(maven-invoker-plugin插件的使用)

在多个 Maven 项目上运行 Fortify 扫描

maven多模块项目构建