【发布时间】:2014-10-07 20:15:31
【问题描述】:
我尝试了所有我能想到的方法,但运行 taskB 仍然会出现错误消息,即如果我将它放在自定义配置中,则任务未在 */*:taskB 或 */cmd:taskB 中定义。
Command.command("doStuff", Help.more("doStuff", "whatever")) {
(state: State) =>
val e = Project.extract(state)
val taskA = taskKey[Seq[String]]("A")
val taskB = taskKey[Seq[File]]("B")
val cmdConfig = config("cmd")
val newState = e.append(
inConfig(cmdConfig)(Seq(
taskA := {
// do stuff
},
taskB := {
// do stuff
}
)
)
, state
)
val result: (State, Seq[File]) = e.runTask(taskB in cmdConfig, newState)
)
在调试它时,似乎该任务在搜索它的structure.data 中不存在。
【问题讨论】:
-
您是否需要专门从命令中添加任务,或者只是让命令调用任务?
-
关键是让命令调用它们。如果它没有崩溃(我注释掉了 e.runTask 部分),那么这些任务就可以从 SBT 访问,标准
*/*:taskB。我在 e.runTask() 中尝试了各种轴组合,但始终找不到任务,我尝试调试它,但那里真的很难。
标签: scala sbt sbt-plugin