如何从 Hudson 获取 Maven 上下文中的最后构建日期?我需要将该日期传递回Maven以生成 * changelog * 报告。有没有更好的方法来实现这一点?
我正在使用 Hudson 2.2.1 和 Maven 3.x
我不久前解决了这个问题。我想我应该在这里分享这个,因为我最初问了这个问题。您可以在 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>
使用环境变量BUILD_ID获取最新构建的时间戳。您获得的时间戳将采用YYYY-MM-DD_hh-mm-ss
格式。使用ZenTimestamp插件将其格式化为所需的格式。
或者
安装Hudson Groovy builder插件并执行 groovy 脚本以获取最后的构建信息
myjob = hudson.model.Hudson.instance.getItem("job_name")
lastbuild = myitem.getLastBuild()
println lastbuild.getTime()
尽管这有助于了解您到底想要实现什么,但据我所知,
你不能维护一个带有上次构建时间戳的属性文件吗?时间戳将随着每次构建而更新。
您可以从此属性文件中读取上次构建时间,并在您使用的任何 maven 插件中使用它。
您可以选择将属性文件签入回 SCM,以确保最后构建日期在所有单独的机器上反映为相同。如果您只需要在 Hudson 机器上使用此文件,则无需将此文件放入 SCM 即可。