sbt compile
概要
sbt [query / ] compile
sbt [query / ] Test / compile
描述
compile 任务编译选定的子项目及其子项目依赖。自 sbt 2.x 起,编译后的构件会自动缓存。
使用原始 Scala 编译器编译 Scala 代码一直较慢,因此 sbt 的相当一部分开发工作致力于各种加速编译的策略。
降低重启编译器的开销
sbt server 在后台持续运行,使 Scala 编译可在同一 Java 虚拟机(JVM)中执行。保持 JVM 常驻可显著加快编译,因为加载编译器并让即时编译器优化需要较长时间。
增量编译
当源文件 A.scala 被修改时,sbt 会尽力减少因 A.scala 变更而需重新编译的其他源文件。这种跟踪语言结构间依赖并仅重新编译所需源文件的过程称为 增量编译。
(远程)缓存
在 sbt 2.x 中,编译后的构件可在会话和构建间缓存,还可选择使用 Bazel 兼容的远程缓存在不同机器间缓存。详见缓存。
Test / compile
使用配置限定 compile 任务,如 Test / compile 将编译测试源及其源依赖。
编译设置
scalaVersion
用于编译的 Scala 版本。
scalaVersion := "3.8.1"
scalacOptions
Scala 编译器选项。
Compile / scalacOptions += "-Werror"
javacOptions
Java 编译器选项。
Compile / javacOptions ++= List("-Xlint", "-Xlint:-serial")