gpt4 book ai didi

sbt - 如何在 sbt 0.12 中使任务依赖于另一个任务?

转载 作者:行者123 更新时间:2023-12-03 01:18:09 25 4
gpt4 key购买 nike

我正在使用 SBT 0.12.0 .

我的 project/Build.scala 有两项任务-helloTasku2定义如下:

val hello = TaskKey[Unit]("hello", "Prints 'Hello World'")

val helloTask = hello := {
println("Hello World")
}

val u2Task = TaskKey[Unit]("u2") := { println("u2") }

如何制作u2任务取决于hellotask ?我用过<<=遵循Tasks中描述的示例(在问题的原始版本中,它是 https://github.com/harrah/xsbt/wiki/Tasks ,但文档已移动并更改)。

u2Task <<= u2Task dependsOn helloTask

但是我得到了reassignment to val错误。显然,我无法通过 <<= 得到任何东西上类。我做错了什么?

最佳答案

我没有看到您非常密切地关注示例 - 这对我有用:

  val helloTask = TaskKey[String]("hello")
val u2Task = TaskKey[Unit]("u2")

helloTask := {
println("Hello World")
"Hello World"
}

u2Task := {println("u2")}

u2Task <<= u2Task.dependsOn (helloTask)

确切的原因是你对u2Task的定义有不同的类型,你可以在REPL中看到:

scala> val u2Task = TaskKey[Unit]("u2")
u2Task: sbt.TaskKey[Unit] = sbt.TaskKey$$anon$3@101ecc2

scala> val u2Task = TaskKey[Unit]("u2") := {println("u2")}
u2Task: sbt.Project.Setting[sbt.Task[Unit]] = setting(ScopedKey(Scope(This,This,This,This),u2))

关于sbt - 如何在 sbt 0.12 中使任务依赖于另一个任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11964583/

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