我有一个简单的任务:
lazy val myCustomTask = TaskKey[Unit]("description of my task")
myCustomTask := {
val arg = "arg1" // Not used yet
(runMain in Compile).toTask(" com.company.Main").value
}
Run Code Online (Sandbox Code Playgroud)
效果很好。
但我需要传递一些论点。如果我这样做:
(runMain in Compile).toTask(s" com.company.Main $arg").value
Run Code Online (Sandbox Code Playgroud)
我收到错误:
错误:非法动态引用:arg
(runMain in Compile).toTask(s" com.company.Main $arg").value
^
[error] 表达式中的类型错误
如何正确传递参数?
PS抱歉我的英语,这不是我的母语。
通过动态任务解决了这个问题:
lazy val myCustomTask = taskKey[Unit]("description of my task")
myCustomTask := Def.taskDyn {
val arg = "arg1"
Def.task {
(runMain in Compile).toTask(s" com.company.Main $arg").value
}
}.value
Run Code Online (Sandbox Code Playgroud)