Как передать пользовательскую версию в sbt release?

#scala #sbt #release

#scala #sbt #выпуск

Вопрос:

Мне нужно передать пользовательскую версию в задачу выпуска SBT. В настоящее время я запускаю это:

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

Но я понимаю это:

 [info] Loading project definition from F:devMyProjectproject
[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 release (https://github.com/sbt/sbt-release ) Я передаю правильные вещи — есть идеи, почему это игнорируется? В конечном итоге мне нужно, чтобы это работало с шага командной строки в TeamCity…

Я также пытался опустить опцию ‘with-defaults’, но это не влияет на результат. Однако запуск просто

 sbt release with-defaults 
  

корректно не запрашивает меня и использует версию, которая у нас есть в version.sbt.

Ответ №1:

Во-первых, убедитесь, что вы используете последнюю sbt-release версию (в настоящее время 1.0.3 по состоянию на 18/10/2016):

 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
  

Комментарии:

1. Был в процессе редактирования, как вы ответили… Я уже пробовал это, и мне все еще предлагается ввести версию

2. with-defaults используется конфигурация, которую вы предоставляете через build.sbt . Я проведу несколько тестов с этим.

3. @ssloan Попробуйте запустить «with-defaults» в конце команды (см. Мое обновление).

4. У меня все еще не работает. Это то, что я запускаю в TeamCity: sbt "release release-version %release-version% next-version %next-version% with-defaults" и я получаю ту же ошибку, что и раньше: ` [08:59:01][ Шаг 3/3] [ошибка] Ожидаемый символ пробела [08:59:01][Шаг 3/3] [ошибка] Ожидаемый «с-defaults» [08:59:01] [Шаг 3/3] [ошибка] Ожидаемый «пропуск тестов» [08:59:01] [Шаг 3/3] [ошибка] Ожидаемый «перекрестный» [08:59:01] [Шаг 3/3] [ошибка] релиз релиз-версия 20.0.5-XML-Исправление-1 следующий-версия 20.0.5-XML-Hotfix-2 с-defaults [08:59:01] [Шаг 3/3] [ошибка] ^ `

5. @ssloan Какую версию sbt вы используете?