SBT。runMain 在任务内带参数

Ole*_*leg 4 scala sbt

我有一个简单的任务:

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抱歉我的英语,这不是我的母语。

Ole*_*leg 5

通过动态任务解决了这个问题:

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)