【发布时间】:2013-04-16 10:06:09
【问题描述】:
如何在 Maven 上下文中从 Hudson 获取最后构建日期?我需要将该日期传递回 Maven 以生成 *changelog* 报告。有更好的方法来实现吗?
我正在使用 Hudson 2.2.1 和 Maven 3.x
【问题讨论】:
如何在 Maven 上下文中从 Hudson 获取最后构建日期?我需要将该日期传递回 Maven 以生成 *changelog* 报告。有更好的方法来实现吗?
我正在使用 Hudson 2.2.1 和 Maven 3.x
【问题讨论】:
虽然这将有助于了解您究竟想要实现什么,但据我所知,
您不能维护一个带有上次构建时间戳的属性文件吗?时间戳将随着每次构建而更新。
您可以从此属性文件中读取上次构建时间,并在您使用的任何 maven 插件中使用它。
您可以选择将属性文件签入回 SCM,以确保最后构建日期在所有单独的计算机上都反映为相同。如果您只需要在 Hudson 机器上使用此文件,则无需将此文件放入 SCM 即可。
【讨论】:
使用环境变量 BUILD_ID 获取最新构建的时间戳。 您获得的时间戳将采用@987654323@ 格式。使用ZenTimestamp插件将其格式化为所需的格式。
或
安装Hudson Groovy builder插件并执行groovy脚本获取最后的构建信息
myjob = hudson.model.Hudson.instance.getItem("job_name")
lastbuild = myitem.getLastBuild()
println lastbuild.getTime()
【讨论】:
xmlpath 属性是否是个好主意?
我不久前解决了这个问题。我想我应该在这里分享这个,因为我最初问了这个问题。您可以在 Hudson 中进行 REST 调用,它会为您提供最后一次成功的构建。 rest 调用和 xpath 的混合,您将获得 YYYY-MM-DD_hh-mm-ss 格式的最后构建日期。
Maven Antrun 任务:
<loadresource property="build_start_date">
<url url="${JOB_URL}/lastSuccessfulBuild/api/xml?xpath=/*/id/text()"/>
</loadresource>
【讨论】: