Scala 如何为一系列任务添加别名?

Scala 如何为一系列任务添加别名?,scala,sbt,Scala,Sbt,我的SBT(0.12.2)项目中有自定义任务。让我们把它们叫做a,b和c。因此,当我处于SBT的交互模式时,我可以键入a,然后执行与a相关的任务。我还可以输入;A.Bc,三个任务按顺序执行;同样的方法类似于;清洁的编译就行了。我还可以从交互式shell中创建一个别名来运行它们:alias all=;A.Bc。现在,当我键入所有时,任务会以一种明显的方式执行。我试图实现的是在我的项目的SBT配置中创建这个别名 大多数SBT文档都涉及任务,但我所能做到的是: lazy val a = TaskKey

我的SBT(0.12.2)项目中有自定义任务。让我们把它们叫做
a
b
c
。因此,当我处于SBT的交互模式时,我可以键入
a
,然后执行与
a
相关的任务。我还可以输入
;A.Bc
,三个任务按顺序执行;同样的方法类似于
;清洁的编译
就行了。我还可以从交互式shell中创建一个别名来运行它们:
alias all=;A.Bc
。现在,当我键入
所有
时,任务会以一种明显的方式执行。我试图实现的是在我的项目的SBT配置中创建这个别名

大多数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
)
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=任务键[单位](“全部”,“a;b;c”)
惰性val taskSettings=Seq(
所有我都明白了:

lazy val taskSettings = Seq(
    all <<= c dependsOn (b dependsOn a)
)
lazy val taskSettings=Seq(

所有我一直在寻找相同的东西,并找到了一种简单的别名方法,它提供了一个:
addCommandAlias

在我的
build.sbt
中,我现在有:

addCommandAlias("go", ";container:start;~copy-resources")

正如您可能猜到的,在控制台中编写
go
现在将为我运行更长的命令序列。

实现这一点的另一种方法是在.sbtrc文件中定义一个别名,该别名将位于项目目录的根目录中

alias all=;a;b;c

您还可以在主目录中定义这些.sbtrc文件,在这种情况下,您的所有项目都可以使用此别名。

是的,他们将在0.13中添加一些很酷的东西。发布时,您可能不再需要完整的构建配置。嗯,我甚至没有注意到版本标签。在0.12.1中对我有效。:)我想知道,既然序列已经定义了“a;b;c”,为什么要定义“a;b;c”,如果
c dependsOn(b dependsOn a)
设置了,为什么要这么做