如何将自定义版本传递给 sbt 版本?

How to pass custom version to sbt release?

我需要将自定义版本传递给 SBT 发布任务。我目前 运行 这个:

sbt "release with-defaults release-version 1.2.3 next-version 1.3.0"

但我明白了:

[info] Loading project definition from F:\dev\MyProject\project
[info] Set current project to ipo-renew (in build file:/F:/dev/MyProject/)
[error] Expected whitespace character
[error] Expected 'with-defaults'
[error] Expected 'skip-tests'
[error] Expected 'cross'
[error] release with-defaults release-version 20.0.5-XML-Hotfix-1 next-version 20.0.5-XML-Hotfix-2
[error]                       ^

我试过没有引号:

sbt release with-defaults release-version 1.2.3 next-version 1.3.0

但随后系统提示我输入版本,而不是使用我提供的版本。

据我从 sbt 发布插件文档 (https://github.com/sbt/sbt-release) 中得知,我正在传递正确的内容 - 知道为什么它被忽略了吗?我最终需要它从 TeamCity 中的命令行步骤工作...

我也试过省略 'with-defaults' 选项,但这对结果没有影响。然而 运行 只是

sbt release with-defaults 

正确地不提示我并使用我们在 version.sbt.

中的版本

首先,确保您使用的是 the latest sbt-release version(截至 2016 年 10 月 18 日,当前为 1.0.3):

addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.3")

运行 with-defaults 作为命令的最后一个参数:

sbt "release release-version 1.2.3 next-version 1.3.0 with-defaults"

这是 TeamCity 中 运行 的输出:

[19:46:27]  [Step 2/2] [info] Checking remote [origin] ...
[19:46:32]  [Step 2/2] [info] Setting version to '1.2.3'.
[19:46:32]  [Step 2/2] [info] Reapplying settings...
[19:46:34]  [Step 2/2] [info] Set current project to ***
[19:46:34]  [Step 2/2] [info] [development 7302685] Setting version to 1.2.3
[19:46:34]  [Step 2/2] [info]  1 file changed, 1 insertion(+), 1 deletion(-)
[19:46:34]  [Step 2/2] [info] Reapplying settings...
[19:46:35]  [Step 2/2] [info] Set current project to ***
[19:46:35]  [Step 2/2] [info] git push sends its console output to standard error, which will cause the next few lines to be marked as [error].
[19:46:36]  [Step 2/2] [error] To ****
[19:46:36]  [Step 2/2] [error]    4342272..7302685  development -> development
[19:46:37]  [Step 2/2] [error] Everything up-to-date