- 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/
我想覆盖 SettingKey b 的值仅在计算 SettingKey a1 时. import sbt._ import sbt.Keys._ object Build extends Build
所以我的一般问题是我想根据任务的结果设置版本 key 。但是,版本 key 是在任务运行之前设置的。据我所知,一旦设置了 key ,我就无法更改它的值,因此我无法在我的任务中更改它。 我想要做的是将任
我正在编写命令并想在 TaskStreams 中使用 Logger 但这是不可能的,因为您无法访问 .value命令中的设置键。有什么办法吗? def myCommand = Command.sing
我正在尝试完成这样的事情: lazy val customFlag = settingKey[Boolean]("My custom flag") lazy val depOne = proje
一个人可以写这样的东西 (managedClasspath in Compile).value 获取managedClasspath的值在 Compile配置。 (managedClasspath i
SettingKey.~= 方法用于从 libraryDependencies 中排除依赖项(参见 play 2.3.8 sbt excluding logback ),但试图找出它的作用是很困难的,
我有兴趣弄清楚 sbt.TaskKey 或 sbt.SettingKey 的一些操作是做什么的 n + "-assembly-" + v + ".jar" } 此时你必须以某种方式知道 jarN
我是一名优秀的程序员,十分优秀!