- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有兴趣弄清楚 sbt.TaskKey
或 sbt.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
最佳答案
如果你想了解<<=
-运算符(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 typeInitialize[T]
. AnInitialize[T]
instance is a computation which takes the values associated with a set of keys as input, and returns a value of typeT
based on those other values. It initializes a value of typeT
.Given an
Initialize[T]
,<<=
returns aSetting[T]
, of course (just like:=
,+=
,~=
, etc.).
如文档中所述,<<=
让你思考 Initialize[T]
, 所以如果你想从多个键中提取值并以某种方式组合它,你需要做类似的事情:
jarName in assembly <<= (name, version) map { (n, v) =>
n + "-assembly-" + v + ".jar" }
此时你必须以某种方式知道 jarName
是 TaskKey
不是SettingKey
.
你没有找到的原因<<=
在最新的入门指南中,是 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/
我想设置依赖于 git 分支的项目版本,在开发版本中有一个当前的主要版本 + 当前日期,在生产中只有主要版本。所以我做了一个计算我需要的版本的任务: val projectVersion = task
一个人可以写这样的东西 (managedClasspath in Compile).value 获取managedClasspath的值在 Compile配置。 (managedClasspath i
lazy val buildDb = taskKey[Unit]("Initializes the database") buildDb := { (compile in Compile).val
sbt.Exctracted 中有一个合适的方法可以将 TaskKey 添加到当前状态。假设我有 inState: State: val key1 = TaskKey[String]("key1")
我有兴趣弄清楚 sbt.TaskKey 或 sbt.SettingKey 的一些操作是做什么的 n + "-assembly-" + v + ".jar" } 此时你必须以某种方式知道 jarN
我是一名优秀的程序员,十分优秀!