我讀了sbt document,發現還有我從來沒有使用一些特殊的方法:build.sbt中`?`,````,`<++ =`,`<+ =`的例子?
?
??
<++=
<+=
我在哪裏可以找到他們的任何例子嗎?
我讀了sbt document,發現還有我從來沒有使用一些特殊的方法:build.sbt中`?`,````,`<++ =`,`<+ =`的例子?
?
??
<++=
<+=
我在哪裏可以找到他們的任何例子嗎?
SBT 0.13做得很好消除這些運營商的需求,並簡化構建定義:=
,+=
和++=
與宏的幫助和特殊的「提取」 .value
。所以不再需要這些操作員。我仍在使用的唯一的事情是~=
是你可以應用一些功能的一些設置的值,但它也可以與:=
和.value
在你的問題來表達,我覺得你混合兩組操作 - 一個與<+=
和<++=
這是或即將贊成:=
,+=
和++=
被「棄用」,而另一個與?
和??
這不幸不經常使用,因爲所有可以:=
,+=
表達和++=
(人們經常發現使用3足夠他們的u se案件)。
閱讀關於More operations的sbt官方文檔約?
和??
。
至於例子:
?
lazy val unintiedKey = settingKey[String]("Unitialized key")
lazy val someKey = settingKey[String]("Key to check the value of another")
someKey := unintiedKey.?.value getOrElse "new value"
那你認爲是要與show someKey
鑑於上述build.sbt
打印出來?
> show someKey
[info] new value
當您添加下面的build.sbt
有uninitedKey
設置初始化:
unintiedKey := "Another value"
someKey
變化,太:
> show unintiedKey
[info] Another value
> show someKey
[info] Another value
??
讓我們定義一個BUIL d具有以下build.sbt
:
lazy val unintiedKey = settingKey[String]("Unitialized key")
lazy val someKey = settingKey[String]("Key to check the value of another")
someKey := (unintiedKey ?? "uninitedKey had no value").value
你猜怎麼的someKey
值將是?
> show someKey
[info] uninitedKey had no value
瞭解操作(即補sbt.SettingKey API)的關鍵是要了解一個設置在SBT什麼 - 這是一對關鍵的和被轉化成可用的設置初始化當一個範圍被應用到它。