Sbt 如何从自定义任务执行runMain?

Sbt 如何从自定义任务执行runMain?,sbt,Sbt,我使用的是sbt v0.13.5 在我的项目中,我希望有一个sbt任务,它可以接受一些输入(单个字符串),对它做一些工作,并返回一些输出(同样,单个字符串)。我在项目中创建了一个帮助器类,可以通过sbt runMain(sbt“runMain com.example.utils.ClassName someArgument”)从终端调用它 我想要的是节省一些打字时间,并有一个sbt任务来完成这项工作。我只希望能够用stuff键入sbt doThing,并有一个名为doThing的任务键,该任务键

我使用的是sbt v0.13.5

在我的项目中,我希望有一个sbt任务,它可以接受一些输入(单个字符串),对它做一些工作,并返回一些输出(同样,单个字符串)。我在项目中创建了一个帮助器类,可以通过
sbt runMain
sbt“runMain com.example.utils.ClassName someArgument”
)从终端调用它

我想要的是节省一些打字时间,并有一个sbt任务来完成这项工作。我只希望能够用stuff键入
sbt doThing
,并有一个名为
doThing
的任务键,该任务键调用
runMain
,其中包含要运行的类的名称和传入的任何参数

我知道如何创建任务,但似乎不知道如何从build.sbt中的自定义任务定义调用
runMain
。有人能给我指出正确的方向吗?

TaskKey[Unit](“myTask”):=(编译中的runMain.toTask(“com.example.Main arg1 arg2”).value
runMain
是一个
InputTask
<代码>输入任务自0.13.1起就有了
toTask
方法


如果有人想运行基于设置计算参数的主类,您需要。例如:

val myRun=taskKey[Unit](“…”)
myRun:=Def.taskDyn{
val appName=name.value
定义任务{
(编译时createApi中的runMain)
.toTask(s“com.softwaremill.MyMain$appName”)
价值
}
}.价值

看看定义任务键并调用
:=
是多么聪明的一行程序。很好!各位,不要低估了
toTask(“com.example.Main arg1 arg2”)
中的空白,这不是打字错误,也不是格式错误,这是必需的。