我希望有一个命令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)
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这种行为?