如何获取设置的值(例如name
)并将其作为参数传递给fullRunTask
?我不理解fullRunTask
的实现。
例如:
lazy val foo = TaskKey[Unit]("foo")
fullRunTask(foo, Compile, "foo.Foo", name.value)
不起作用,因为我无法在此上下文中引用name.value
。
答案 0 :(得分:12)
好的,我得到了Josh Suereth的帮助。使用fullRunTask
执行此操作稍微复杂一点,但它所做的额外操作(添加runner in myTask
)确实不是必需的。内联runTask
的主体做了我需要的事情。
lazy val myTask = taskKey[Unit]("my custom run task")
myTask := {
val r = (runner in Compile).value
val input = name.value // or any other string setting(s)
val cp = (fullClasspath in Compile).value
toError(r.run("my.MainClass", data(cp), Seq(input), streams.value.log))
}