[英]Difference between scalaSource and sourceDirectories in sbt
[英]SBT, difference between <<= and :=
文檔中未描述這些方法。 我主要使用:=
在我的.sbt文件中,但有時,由於我還不了解的原因,我指定的任務:=
不起作用(意味着任務不會產生副作用而且不會返回什么),並使用<<=
。 那么<<=
和:=
之間的區別是什么?
編輯:
我的下面的例子運行一個清理任務,當它完成( doFinally
)時,同時運行另外兩個任務。
gae_prep_war := {
val after = Def.task {
(gae_copyJars).value; (compile in Compile).value;
}
(gae_clean, after) {
(clean, task) => clean doFinally task
}
}
因為它現在不起作用,沒有錯誤,但也沒有效果或輸出; 如果我改變:=
到<<=
它的工作原理。 我的SBT版本是0.13.0並使用Scala 2.10.2。
EDIT2:
我發現:=
如果我只是將.value
附加到外部表達式:
gae_prep_war := {
val after = Def.task {
(gae_copyJars).value; (compile in Compile).value;
}
(gae_clean, after) {
(clean, task) => clean doFinally task
}
}.value
^
但我還是不太明白為什么......
在sbt 0.13中, <<=
已過時。 當任務定義引入了對其他任務的依賴時,它被使用 - 它允許您提取其他任務的結果。 以下是關於它的0.12.4文檔: http : //www.scala-sbt.org/0.12.4/docs/Getting-Started/More-About-Settings.html#computing-a-value-based-on-其他密鑰值
在0.13中你可以使用:=
always,所以你可以在這里看到文檔如何在0.13中改變: http : //www.scala-sbt.org/0.13.1/docs/Getting-Started/More-About-Settings。 HTML#計算的一個值,基於上其他密鑰值
因此,對於0.13及以上,可以安全地忘記<<=
。
如果上面的文檔鏈接沒有意義,可能有助於回到入門指南的開頭並閱讀以獲得背景。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.