Voglio avere un comando publish-snapshot
che eseguirà l'attività publish
con l'impostazione version
modificata (tale impostazione deve essere calcolata al momento dell'esecuzione del comando).Come modificare le impostazioni nel comando SBT?
Ho scoperto come ottenere il valore corrente del comando interno version
e Project.runTask("task", "scope", ...)
sembra essere una chiamata giusta per richiamare l'attività publish
.
L'unica cosa di cui sono confuso è come modificare l'istanza State
con un nuovo valore di versione. Tutti i miei tentativi sembrano non fare nulla per l'impostazione della versione originale.
Il mio ultimo tentativo:
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)
c'è qualche modo per risolvere questo comportamento?
Sono in esecuzione su '0.13.8' e questo mi ha aiutato. Anche se sembra super strano avere il 'newState' due volte come input per' runTask'. Mi chiedo se questo è un comportamento intenzionale. Grazie per la condivisione! – mavilein