使用 Hudson 和 Maven 发布插件发布多个项目

Posted

技术标签:

【中文标题】使用 Hudson 和 Maven 发布插件发布多个项目【英文标题】:Using Hudson and Maven release plugin to release multiple projects 【发布时间】:2011-05-23 21:55:48 【问题描述】:

我有三个 Maven 项目。假设 A、B 和 C。这些项目中的每一个都是具有平面目录结构的多模块项目。

项目C依赖项目B,而项目B又依赖项目A。

目前,我可以成功地使用 Hudson 对所有三个项目进行持续集成。

我想做的是使用 maven-release-plugin 一次性发布所有三个项目。据我了解,maven-release-plugin 要求依赖项是完整版本,而不是 SNAPSHOT 版本。

我需要维护 SNAPSHOT 版本号,以便 Eclipse 工作区解析可以在开发阶段保持项目相互依赖关系。

由于这些项目有分层依赖,所以项目必须按顺序发布,同时依次更新依赖SNAPSHOT版本。

关于如何实现这一目标的任何想法?

我认为 maven-release-plugin 无法做到这一点。至少,从我所学到的。我猜我将不得不运行一个单独的 Hudson 作业,该作业将在项目发布时更新依赖版本号。

【问题讨论】:

【参考方案1】:

创建一个构建序列怎么样?

考虑以下配置,您有以下工作。

Project-A-Release-Job 项目-B-发布-工作 项目-C-发布-工作

此外 如果构建了 Project-A-Release-Job,则会触发 Project-B-Release-Job, 如果构建了 Project-B-Release-Job,则会触发 Project-C-Release-Job

在这种情况下,发布这些项目中的任何一个都将强制发布下一个。

考虑使用 maven-versions-plugin 与 scm 插件的组合顺序: 1. 验证新版本/快照版本是否在存储库中 2. 更新 POM 中的依赖版本 3. 将更新的 Pom 提交到 SCM。

【讨论】:

以上是关于使用 Hudson 和 Maven 发布插件发布多个项目的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Maven 构建 Hudson 插件

在使用像 Hudson/Jenkins 这样的 CI 工具时,我如何成功地将 Maven 发布插件与 GitHub(或 GitHub 企业)一起使用

通过 Hudson 发布 Maven

使用 Maven/Hudson/Mercurial 进行发布

使用 svn+maven+jenkins(hudson)+Publish Over SSH plugins 构建持续集成及自动远程发布体系(转)

如何使用来自 Hudson 的 Maven 生成 Cobertura 代码覆盖率报告