多个 Maven 项目针对一个公共时间戳发布
Posted
技术标签:
【中文标题】多个 Maven 项目针对一个公共时间戳发布【英文标题】:multiple maven projects release against a common timestamp 【发布时间】:2013-04-09 17:12:23 【问题描述】:我们有几个项目正在进行,它们之间存在依赖关系。所有项目构成最终软件。
我们设置了一个 DEV 构建环境,使用 LASTEST 依赖项进行快照构建。任何更改都会触发快照构建(jekins 作业),并且所有依赖项的快照构建也将被触发,因此如果任何更改破坏了某个项目,该项目自己的构建将通知所有者。
问题是关于发布的。 DEV 构建是连续的,当它是所有项目的绿色开发构建时,我们希望针对某个时间戳发布每个项目。
如何获得这样的发布流程设置?
谢谢。
【问题讨论】:
【参考方案1】:jenkins 提供了一些 Post-Build-Actions。您可以使用它们将每个成功构建的工件发布/存档到任何您想要的位置。
您的 Release-Job 可以获取所有工件并部署它们。因此,您可以确定所有工件都来自 GREEN 构建,并且独立于所有连续作业。
如果你想变得很酷,也可以在 Release-Job 中进行一些冒烟测试(例如,数据库连接是否正常工作、外部 API 是否正常工作等)。
最好, 马可
【讨论】:
嗨,Marco,谢谢,我们正在尝试按照您所说的进行设置。一件事是,当第 3 天我们的 repo 提交了更多更改,并且我们验证了第 1 天的 DEV 构建是绿色的并且我们想要发布该快照构建时,如何添加 repo 发布标签? 以前,我们做了发布并将发布标签添加到存储库中,所以只要有发布标签,这意味着该标签之前的所有更改都集成到该版本中。现在我们选择直接将 Green DEV Build 推广为发布,所以我想知道应该如何添加发布标签。今天的调整是我们仍然在 HEAD 中添加发布标签,但是在标签或更改消息中,我们添加了构建此版本所依据的更改 #。 嗯好的。这是你试图在那里构建的一个棘手的部署;)这是我的想法: - 构建一个打包作业,它收集所有工件并在你的仓库中创建一个新标签 - 以某种时间相关的方式命名标签 - 构建一个发布- 将感兴趣的时间作为parameter 的作业 - Release-Job 使用具有给定时间的标签来发布内容。 Packaging-Job 可以通过 crontab(例如每小时一次)或在 Dependency-Jobs 之一成功完成构建后触发。这是否满足您的需求?以上是关于多个 Maven 项目针对一个公共时间戳发布的主要内容,如果未能解决你的问题,请参考以下文章