変更された設定でタスクpublish-snapshot
を実行するコマンドが必要です(その設定はコマンドの実行時に計算されます)。publish
version
inside コマンドの現在の値を取得する方法がわかりました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)
この動作を修正する方法はありますか?
ベストアンサー1
sbt
メーリングリストの助けを借りて、次のようなソリューションを作成することができました。
def publishSnapshot = Command.command("publish-snapshot") { state =>
val extracted = Project extract state
import extracted._
val eVersion = getOpt(version).get // getting current version
runTask(publish in Compile,
append(Seq(version := "newVersion"), state),
true
)
state
}