¿Cómo cambiar la configuración dentro del comando SBT?
Quiero tener un comandopublish-snapshot
que correría elpublish
tarea con modificadoversion
configuración (esa configuración debe calcularse en el momento de la ejecución del comando).
Descubrí cómo obtener el valor actual de laversion
comando interno, yProject.runTask("task", "scope", ...)
Parece ser una llamada correcta para invocar elpublish
tarea.
Lo único con lo que estoy confundido es cómo modificar elState
instancia con un nuevo valor de versión. Todos mis intentos parecen no hacer nada con la configuración de la versión original.
Mi último intento:
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)
¿Hay alguna manera de arreglar ese comportamiento?