使用 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 发布插件发布多个项目的主要内容,如果未能解决你的问题,请参考以下文章
在使用像 Hudson/Jenkins 这样的 CI 工具时,我如何成功地将 Maven 发布插件与 GitHub(或 GitHub 企业)一起使用
使用 Maven/Hudson/Mercurial 进行发布
使用 svn+maven+jenkins(hudson)+Publish Over SSH plugins 构建持续集成及自动远程发布体系(转)