【发布时间】:2016-03-24 05:01:55
【问题描述】:
我有一个简单的命令可以改变myBoolSetting 的值:
commands += Command("mycommand") {
state ⇒ (Space ~> Bool).?
} { (state, arg) ⇒
val b = arg.getOrElse(true)
Project.extract(state).append(Seq(myBoolSetting in Global := b), state)
}
当我更改调用时,它确实会更改 myBoolSetting,但我会丢失任何已通过 set command 更改值的设置。
> set myStringSetting := "new value"
> myCommand false
在本例中,myStringSetting 的值已丢失并具有其默认值。
如何更改设置并保留手动更改的设置?
更新:
找到相关问题:Why sbt.Extracted remove the previously defined TaskKey while append method?,但似乎不适用于我的情况。
修改代码:
commands += Command("mycommand") {
state ⇒ (Space ~> Bool).?
} { (state, arg) ⇒
val b = arg.getOrElse(true)
val session = Project.session(state)
val state2 = Project.extract(state).append(Seq(myBoolSetting in Global := b), state)
SessionSettings.reapply(session, state2)
}
【问题讨论】:
标签: sbt