2012-01-17 70 views
4

0.7.x我們使用dependsOn來聲明任務取決於其他任務 - 意味着其他任務必須先執行。SBT 0.11 InputKey取決於其他任務

0.11.x我們使用<<=來聲明任務取決於其他任務。 SBT維基說明了如何聲明TaskKey[_],這取決於其他任務和設置(這裏有與that有關的問題),但在InputKey[_]上沒有太多。如果我宣佈這樣的輸入鍵:

val benchTask = InputKey[Unit](
    "bench", 
    "Runs a specified benchmark." 
) <<= inputTask { 
    (argTask: TaskKey[Seq[String]]) => 
    argTask map { 
    args => 
    // ... 
    } // xxx 
} 

我怎樣才能使它依賴於其他任務,例如像packageBin in Test?我可以把dependsOn而不是上面的xxx評論,但是這給我類型錯誤。

謝謝。

回答

6

與argTask一起地圖的其他任務:

inputTask { 
    (argTask: TaskKey[Seq[String]]) => 
    (argTask, packageBin in Test) map { 
    (args, pb) => 
    // ... 
    } 
} 
+0

這是否意味着,我必須有'packageBin'參數'pb'在'map',即使我不感興趣,其價值,只是依賴? – axel22 2012-01-17 11:56:21

+0

是的,您對之前取決於的值感興趣。 – venechka 2012-01-17 11:59:26

+0

答案片段如何與問題片段相關?它是否只是從第4行的「inputTask {」取代? – 2014-12-17 13:42:27