【发布时间】:2023-04-04 04:35:02
【问题描述】:
我正在寻找一种方法来捕获在构建的“mvn deploy”阶段生成的唯一 SNAPSHOT 构建号。我希望能够将此版本(在 Hudson 构建期间)传递给另一个用于部署到应用程序服务器的进程。这里的关键是能够捕获准确的 Maven SNAPSHOT 内部版本号,例如:
foobar-0.4-20100707.060244-11.war
我注意到,如果您归档 maven 构建工件,Hudson 会捕获此信息,但尚不清楚如何公开此变量并将其传递给另一个工作(这是我想做的)。我可以在 Hudson Home 目录中看到这个变量,如下所示:
/hudson/jobs/JOB_NAME/builds/24/org.ace.widgets$foobar/archive/org.ace.widgets/foobar/0.4-20100707.060244-11
有任何 Maven 和/或 Hudson 专家知道如何公开 SNAPSHOT 内部版本号吗?哈德森在做吗?
【问题讨论】:
-
不知道怎么轻易暴露。以防万一, - Maven Versions Plugin 有一个
versions:lock-snapshots目标,允许将解锁的快照依赖版本解析为锁定的时间戳版本。也许你可以围绕这个建立一个解决方案。 -
感谢 Pascal,这是一个有趣的插件,或许可以解决我的问题。我一定会调查的。
-
使用快照的替代方法是让第一个 Hudson 作业在 WAR 文件的名称中包含 SVN 修订号,然后使用参数化触发器插件触发第二个作业,并使用“预定义”参数value 是内置的 ${SVN_REVISION} 属性。然后,第二个 Hudson 作业可以使用此值生成要从 Maven 存储库下载的 WAR 文件的名称。