在 build.sbt 中使用 Jenkins 内部版本号通过 sbt-native-packager 构建 RPM

Posted

技术标签:

【中文标题】在 build.sbt 中使用 Jenkins 内部版本号通过 sbt-native-packager 构建 RPM【英文标题】:Use Jenkins build number within build.sbt in play to build RPM with sbt-native-packager 【发布时间】:2014-11-12 13:09:48 【问题描述】:

这个问题在某种程度上与Using Jenkins BUILD NUMBER in RPM spec file有关。

您可以使用环境变量$BUILD_NUMBER 在 Jenkins 进程中访问内部版本号。但是我如何在我的 Play 中使用这个环境变量! build.sbt 文件将rpmRelease := "..." 设置为实际内部版本号?

RPM 是在 Jenkins 中使用简单的 Shell 命令 activator rpm:packageBin 构建的。

【问题讨论】:

我作为评论回答 b/c 我不确定,但要尝试的一件事是将任意值传递给您的 application.conf。请参阅playframework.com/documentation/2.3.x/Configuration 的最底部。因此,在 Jenkins 中,您可以运行像 activator -DrpmRelease=$BUILD_NUMBER dist 这样的终端命令。 【参考方案1】:

您可以将 scala 代码放在 build.sbt 文件中,这样应该可以工作:

rpmRelease := sys.env("BUILD_NUMBER")

或者如果您需要提供默认值:

rpmRelease := sys.env.get("BUILD_NUMBER").getOrElse("SOME DEFAULT VALUE")

【讨论】:

以上是关于在 build.sbt 中使用 Jenkins 内部版本号通过 sbt-native-packager 构建 RPM的主要内容,如果未能解决你的问题,请参考以下文章

在 build.sbt 中过滤类

使用 sbt-spark-package 插件了解 build.sbt

如何在 sbt 子项目 build.sbt 文件中获取对当前项目的引用

build.sbt 和 build.scala 有啥区别?

sbteclipse:创建 build.sbt 和 plugins.sbt

如何在 ScalaJS build.sbt 中设置 mainClass?