我正在尝试为SBT定义我的自定义输入任务。此任务应该运行一些应用程序并将其作为参数传递到目标目录的路径。该应用程序应该能够从控制台获得额外的动态参数。任务应如下所示:
Tasks.generate := (runMain in Test).partialInput(s" MyApp generate ${target.value}").evaluated
但是我在参考${target.value}
:
非法动态依赖
如果我更改下一个代码:
Tasks.generate := Def.inputTaskDyn((runMain in Test).toTask(s" MyApp generate ${target.value}")).evaluated
它按预期传递参数,但它不再是输入任务,并且sbt不允许在任务调用时传递其他参数。
那么我怎样才能解决动态依赖的问题呢?最终我应该拨打一个电话,将test:runMain MyApp generate $path_to_target $1 $2....
的电话转换为generate $1 $2....
。
感谢。