我经常运行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] ^
有可能吗?我使用SBT 0.13。
答案 0 :(得分:18)
test:compile
表示compile
,因此compile
不需要在test:compile
之前显式运行IntegrationTest
。如果您的extend
配置Test
it:compile
,test:compile
隐含sbt> alias compileAll = ; test:compile ; it:compile
。
一个选项是定义执行多个命令的别名:
help alias
有关详细信息,请参阅help ;
和addCommandAlias("compileAll", "; test:compile ; it:compile")
。您可以使用以下命令将其作为构建的一部分:
lazy val compileAll = taskKey[Unit]("Compiles sources in all configurations.")
compileAll := {
val a = (compile in Test).value
val b = (compile in IntegrationTest).value
()
}
另一个选项是定义一个依赖于其他任务的自定义任务并调用:
{{1}}