可以执行"编译测试:编译它:编译"作为单个命令,说"*:compile"?

Jac*_*ski 14 sbt

compile test:compile it:compile经常跑步......想把按键的数量减少到类似的东西*:compile.但它似乎不起作用.

$ sbt *:compile
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Loading project definition from /Users/jacek/oss/scalania/project
[info] Set current project to scalania (in build file:/Users/jacek/oss/scalania/)
[error] No such setting/task
[error] *:compile
[error]          ^
Run Code Online (Sandbox Code Playgroud)

有可能吗?我用SBT 0.13.

Mar*_*rah 19

test:compile意味着compile这样compile不需要之前显式运行test:compile.如果你的IntegrationTest配置extends ^ Test,it:compile暗示test:compile.

一种选择是定义执行多个命令的别名:

sbt> alias compileAll = ; test:compile ; it:compile
Run Code Online (Sandbox Code Playgroud)

查看help aliashelp ;了解详情.您可以使用以下命令将其作为构建的一部分:

addCommandAlias("compileAll", "; test:compile ; it:compile")
Run Code Online (Sandbox Code Playgroud)

另一个选项是定义一个依赖于其他任务的自定义任务并调用它:

lazy val compileAll = taskKey[Unit]("Compiles sources in all configurations.")

compileAll := { 
   val a = (compile in Test).value
   val b = (compile in IntegrationTest).value
   ()
}
Run Code Online (Sandbox Code Playgroud)