我想要一个命令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)
有什么方法可以解决这种行为吗?