gpt4 book ai didi

sbt - sbt.TaskKey 和 sbt.SettingKey 的 SBT 文档在哪里?

转载 作者:行者123 更新时间:2023-12-05 02:23:36 27 4
gpt4 key购买 nike

我有兴趣弄清楚 sbt.TaskKeysbt.SettingKey 的一些操作是做什么的

<<=
<+=
<++=

我知道主网站的文档部分有很多示例和文档,但我没有找到任何帮助。这是我看的地方:

http://www.scala-sbt.org/release/docs/Getting-Started/More-About-Settings.html

http://www.scala-sbt.org/release/api/index.html#sbt.TaskKey

http://www.scala-sbt.org/release/api/index.html#sbt.SettingKey

最佳答案

sbt 0.12语法

如果你想了解<<= -运算符(operator)家族,最好的去处是sbt 0.12.1版本的入门指南,特别是您链接的页面更多种类的设置有一个名为Computing a value based on other keys' values: <<=的部分.

~= defines a new value in terms of a key's previously-associated value. But what if you want to define a value in terms of other keys' values?

  • <<= lets you compute a new value using the value(s) of arbitrary other keys.

<<= has one argument, of type Initialize[T]. An Initialize[T] instance is a computation which takes the values associated with a set of keys as input, and returns a value of type T based on those other values. It initializes a value of type T.

Given an Initialize[T], <<= returns a Setting[T], of course (just like :=, +=, ~=, etc.).

如文档中所述,<<=让你思考 Initialize[T] , 所以如果你想从多个键中提取值并以某种方式组合它,你需要做类似的事情:

jarName in assembly <<= (name, version) map { (n, v) =>
n + "-assembly-" + v + ".jar" }

此时你必须以某种方式知道 jarNameTaskKey不是SettingKey .

sbt 0.13语法

你没有找到的原因<<=在最新的入门指南中,是 sbt 0.13 语法使 <<=过时的。您只需要 := . sbt 使用宏扩展 := 的 rhs从中生成以上内容:

jarName in assembly := {
name.value + "-assembly-" + version.value + ".jar"
}

:=让你思考T ,所以更容易处理。

关于sbt - sbt.TaskKey 和 sbt.SettingKey 的 SBT 文档在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20553015/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com