【发布时间】:2012-12-25 03:04:38
【问题描述】:
我想要一个命令 publish-snapshot 来运行 publish 任务并修改 version 设置(该设置将在执行命令时计算)。
我想出了如何获取version inside 命令的当前值,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)
有什么方法可以解决这个问题吗?
【问题讨论】: