2016-11-08 48 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

相關問題