2016-11-08 44 views
2

我试图用SBT 0.13.13定义`Task`用`Task`在SBT设置0.13.13

task <<= 
(streams in Test, 
    loadedTestFrameworks in Test, 
    testLoader in Test, 
    testGrouping in Test in test, 
    testExecution in Test in task, 
    fullClasspath in Test in test, 
    javaHome in test) flatMap Defaults.allTestGroupsTask 


warning: `<<=` operator is deprecated. 
    Use `key := { x.value }` or `key ~= (old => { newValue })`. 
    See http://www.scala-sbt.org/0.13/docs/Migrating-from-sbt-012x.html 

<<=运营商现在已经过时的时候,以消除此设置一个弃用警告,但我不知道如何重写上面的表达式。

我试图把它改写为:

task := Defaults.allTestGroupsTask(
    (streams in Test).value, 
    (loadedTestFrameworks in Test).value, 
    (testLoader in Test).value, 
    (testGrouping in Test in test).value, 
    (testExecution in Test in task).value, 
    (fullClasspath in Test in test).value, 
    (javaHome in test).value) 

但是用我无法分配Task[A]TaskKey:=

我应该怎么做删除<<=呢?

+0

'allTestGroupsTask'返回'任务[输出]',让你无论是想在年底或'.taskValue' – laughedelic

+0

申请''.value'在.value'结尾提出错误:非法的动态依赖关系,我找不到'.taskValue',它在哪里? – Eric

回答

1

尝试使用Def.taskDyn

task := Def.task { 
    Def.task { 
    Defaults.allTestGroupsTask(
     (streams in Test).value, 
     (loadedTestFrameworks in Test).value, 
     (testLoader in Test).value, 
     (testGrouping in Test in test).value, 
     (testExecution in Test in task).value, 
     (fullClasspath in Test in test).value, 
     (javaHome in test).value 
    ) 
    }.value 
}.value 
+0

我得到 '发现:sbt.Tests.Output' '要求:sbt.Def.Initialize [sbt.Task []] 任务:= Def.taskDyn(Defaults.allTestGroupsTask(' – Eric

+0

如果我尝试最后一次'.value'我得到'sbt.Tests.Output' '必需:sbt.Def.Initialize [sbt.Task [?]] 任务:= Def.taskDyn(Defaults.allTestGroupsTask(' – Eric

+0

) 'task' defined?它是什么类型的? – jkinkead