【发布时间】:2013-04-19 01:10:27
【问题描述】:
我的 SBT (0.12.2) 项目中有自定义任务。我们称它们为a、b 和c。因此,当我处于 SBT 的交互模式时,我只需键入 a 并执行与 a 关联的任务。我也可以输入;a;b;c,三个任务依次执行;就像;clean;compile 一样。我还可以从交互式 shell 中创建一个别名来运行它们:alias all=;a;b;c。现在,当我输入all 时,任务将以一种明显的方式执行。我想要实现的是在我的项目的 SBT 配置中创建这个别名。
This section 的 SBT 文档处理任务,但我能做到的只是这样的:
lazy val a = TaskKey[Unit]("a", "does a")
lazy val b = TaskKey[Unit]("b", "does b")
lazy val c = TaskKey[Unit]("c", "does c")
lazy val all = TaskKey[Unit]("all", ";a;b;c")
lazy val taskSettings = Seq(
all <<= Seq(a,b,c).dependOn
)
我对这种方法的问题是任务是组合,因此它们的执行是并行发生的,而不是顺序执行,这是我想要实现的。那么如何在 SBT 配置文件中创建像 alias all=;a;b;c 这样的别名呢?
【问题讨论】: