多个 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 项目针对一个公共时间戳发布的主要内容,如果未能解决你的问题,请参考以下文章

INNER JOIN 基于彼此范围内的公共时间戳的两个 BigQuery 表?

R bin 时间戳出现在两个时间戳之间

如何将时间戳信息添加到 Maven 工件?

使用maven编译scala项目时栈溢出

时间戳的休眠搜索查询返回空列表

MS Build 期间的时间戳