在sbt.Exctracted中有一個合適的方法來將TaskKey添加到當前狀態。假設我有inState: State
:爲什麼sbt.Extracted在append方法中刪除先前定義的TaskKey?
val key1 = TaskKey[String]("key1")
Project.extract(inState).append(Seq(key1 := "key1 value"), inState)
我都面臨着當我做了兩次奇怪的行爲。我在下面的示例中的異常:
val key1 = TaskKey[String]("key1")
val key2 = TaskKey[String]("key2")
val st1: State = Project.extract(inState).append(Seq(key1 := "key1 value"), inState)
val st2: State = Project.extract(st1).append(Seq(key2 := "key2 value"), st1)
Project.extract(st2).runTask(key1, st2)
導致:
java.lang.RuntimeException: */*:key1 is undefined.
的問題是 - 爲什麼它的工作原理是這樣?是否可以通過多次調用sbt.Extracted.append
來執行特定任務時添加幾個TaskKey
?
的例子SBT項目sbt.Extracted append-example,重現該問題只運行sbt fooCmd