scala - 覆盖 sbt 中的默认编译任务

标签 scala sbt

在 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/

相关文章:

scala - 摆脱 sbt 生成的所有内容的艰难方法

scala - 如何将Scala宏作为项目分发?

mysql - 使用 Scala 从一个平台查询另一个平台

java - Random.nextInt 返回连续的相同值整数(经常)

scala - 如何在 ScalaTest/SBT 中按顺序运行测试套件?

scala - 配置 sbt 到 Jenkins

scala - 关于 scala 私有(private)字段变量的困惑

scala - 如何在 Play Framework 2.2.1 中读取文件?

sbt - 什么时候需要聚合而不是依赖

git - sbt 如何从 git 中提取依赖项?