gpt4 book ai didi

scala - sbt 究竟是如何计算出任务名称的?

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

假设 build.sbt 中有这样的东西

val printMessage = taskKey[Unit]("Simple task")

printMessage := {
println("Hello")
}

sbt 如何计算出这个任务被称为 printMessage并在没有包含该文本的字符串时使其在 CLI 中可用?我会理解代码是否类似于 val printMessage = taskKey[Unit]("printMessage", "description")但这真的让我很困惑

最佳答案

SBT 有一个 macro , sbt.std.KeyMacro.taskKeyImpl这需要 String描述并从定义 val 的名称推断任务名称。

这个宏是aliasedtaskKey[T]在 sbt 包对象中。

所以当你调用taskKey[Unit]("SimpleTask") , 扩展为一个找到 val printMessage 的宏并使用它来推断任务键的名称。

关于scala - sbt 究竟是如何计算出任务名称的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31806062/

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