Sbt 如何从另一个InputAsk中调用InputAsk?
在一个Sbt 如何从另一个InputAsk中调用InputAsk?,sbt,Sbt,在一个inputTask中,我通过编程调用另一个inputTask,例如testOnly,参数字符串如下: val readParams = inputKey[Unit]("reads version") readParams := { ... // here some Parser code val a = "*OnlyThisClassPls*" testOnly.toTask(a) } 不幸的是,我没有得到结果,而是得到了一个异常非法动态引用。为什么?我想我解决了我的问题 我
inputTask
中,我通过编程调用另一个inputTask
,例如testOnly
,参数字符串如下:
val readParams = inputKey[Unit]("reads version")
readParams := {
... // here some Parser code
val a = "*OnlyThisClassPls*"
testOnly.toTask(a)
}
不幸的是,我没有得到结果,而是得到了一个异常
非法动态引用
。为什么?我想我解决了我的问题
def testOnlyWithDynamicParams(参数:String)=def.taskDyn{
(仅在测试中测试)。toTask(参数)
}
readParams:=Def.inputTaskDyn{
…//这里是一些解析器代码
val paramsfortstonly=“*仅限ISCLASSPLS*”
仅使用DynamicParams进行测试(参数可选)
}.已评估
我不确定这是否是最好的方法,但它对我有效。如果您知道更好的解决方案,请指正。不,这是正确的方法。动态参考与静态参考是关于在sbt中预先知道依赖关系(通过sbt检查)。您想要做的是可能的,只是变得更加困难,因为sbt直到运行时才知道依赖关系图。