将模块版本作为命令行参数发送到SBT

Øyv*_*tad 2 scala sbt sbt-native-packager

我正在使用TeamCity运行一个bash脚本,该脚本利用SBT Native Packager将图像发布到Docker.bash脚本的sbt部分看起来像这样:

sbt -DdockerRepository=$repo -DpackageName=$packageName -D myproject/docker:publish
Run Code Online (Sandbox Code Playgroud)

我想将TeamCity内部版本号作为版本号传递给我的包.今天我在build.sbt的设置中手动指定版本号:

settings(
  version := "0.20",
  ....,
  dockerBaseImage := "example.com:5000/linux/java8:latest",
  dockerRepository in Docker := Some("example.com/myoldrepo"),
  dockerUpdateLatest := true'
)
Run Code Online (Sandbox Code Playgroud)

我希望能够这样做:

activator -Dversion=0.21 -DpackageName=myproject -D myproject/docker:publish
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.然而像我上面那样重写dockerRepository是有效的.

如何从命令行/ TeamCity将所需的版本号传递到SBT?

kar*_*sev 8

您可以在发布之前设置版本:

sbt 'set version := "1.0"' docker:publish
Run Code Online (Sandbox Code Playgroud)