如何在sbt中的project / Build.scala中定义自定义任务?

时间:2013-06-17 06:43:12

标签: sbt

project/Build.scala中使用以下任务声明,当我在SBT控制台输入print时,无法识别print任务。

lazy val print = task { println("print") }

出了什么问题?

2 个答案:

答案 0 :(得分:5)

您需要使用TaskKey才能使用taskKey宏来实例化

lazy val printTask = taskKey[Unit]("print")

我建议您查看相应的documentation about tasks。 文档说:

  

在引用Scala代码中的任务时使用val的名称。传递给TaskKey方法的字符串在运行时使用,例如在命令行

答案 1 :(得分:2)

taskKey[Unit]("print") := println("print")

然后在您的SBT控制台中

> print
print

在更复杂的代码中,您通常会看到与设置分开的密钥。

val printTask = taskKey[Unit]("print")

printTask := println("print")