【发布时间】:2021-10-28 07:48:38
【问题描述】:
我正在将一个旧项目迁移到 Scala 3。build.sbt 如下:
import Dependencies._
inThisBuild(
Seq(
scalaVersion := "2.12.7",
scalacOptions ++= Seq(
"-unchecked",
// more
)
)
++ inConfig(Test)(Seq(
testOptions += Tests.Argument(TestFrameworks.ScalaTest, "-o", "-e"),
// more
))
)
lazy val root = (project in file("."))
.aggregate(
`test-util`
)
lazy val `test-util` = project
现在,为了便于阅读,我想将 inThisBuild 中的内容分开。
import Dependencies._
ThisBuild / scalaVersion := "3.0.1"
ThisBuild / scalacOptions ++= Seq(
"-unchecked",
// more
)
lazy val testSettings = inConfig(Test)(
Seq(
testOptions += Tests.Argument(TestFrameworks.ScalaTest, "-o", "-e"),
// more
))
lazy val root = (project in file("."))
.aggregate(
`test-util`
)
.settings(testSettings)
lazy val `test-util` = project
如您所见,我必须为每个项目应用testSettings。理想情况下,我想做ThisBuild / Test := testSettings 之类的事情,但这不是有效的语法。
有没有办法将testSettings 应用于所有项目而无需显式设置.settings(testSettings)?
编辑:
我知道我可以用ThisBuild / Test 前缀编写testSettings 的每一行,但我不想重复相同的前缀。我正在寻找类似于我对 scalacOptions 所做的事情。
【问题讨论】: