Я хочу иметь команду publish-snapshot
, которая запускает задачу publish
с измененным параметром version
(этот параметр должен быть вычислен во время выполнения команды).
Я понял, как получить текущее значение внутренней команды version
, а Project.runTask("task", "scope", ...)
представляется правильным вызовом для вызова задачи publish
.
Единственное, с чем я смущен, - это изменить экземпляр State
с новым значением версии. Все мои попытки, похоже, ничего не делают для установки исходной версии.
Моя последняя попытка:
val printVers = TaskKey[Unit]("printvers")
val printVersTask = TaskKey[Unit]("printvers") <<= {version map println}
def publishSnapshot = Command.command("publish-snapshot") { state =>
val newState = SessionSettings.reapply(state.get(sessionSettings).get.appendRaw(version := "???"), state)
Project.runTask(printVers in Compile, newState, true)
state
}
lazy val root = Project("main", file("."),
settings =
Defaults.defaultSettings ++
Seq(printVersTask)).settings(commands += publishSnapshot)
Есть ли способ исправить это поведение?