在 SBT 中,compile
任务执行项目代码的编译,test:compile
任务执行项目测试的编译。我想要一个同时执行这两项操作的 compile
任务。我想覆盖默认的 compile
任务并且不想要一个具有新名称的任务(因为想要在每次对项目主代码进行代码更改时强制所有测试编译成功)。我正在使用 Build.scala(不是 build.sbt)并尝试了 this SO 答案中描述的方法。我的试验粘贴在下面,但不起作用,因为 compile
任务的返回类型是 TaskKey[Analysis]
。我该如何更改?
val compileInTest = TaskKey[Analysis]("compile the tests")
compileInTest := {
(compile in Compile in <module-name>).value
(compile in Test in <module-name>).value
}
lazy val projectA = Project(
"a",
file("a"),
settings = hwsettings ++ Seq(
compile := compileInTest
))
最佳答案
你可以在.sbtrc
文件中定义别名:
alias compile=test:compile
这将完成这两项任务。
关于scala - 覆盖 sbt 中的默认编译任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37319106/