在多项目构建中,我有两个项目,A和B,它们被交叉编译到Scala2.12和Scala2.13。我想向项目A添加一个依赖于B的Scala2.12类路径(B / Compile / fullClasspath)的任务,而不管A中使用的Scala版本是什么:
ThisBuild / scalaVersion := "2.13.2"
ThisBuild / crossScalaVersions := Seq("2.13.2", "2.12.10")
val foo = taskKey[Unit]("foo-task")
lazy val B = project.in(file("B"))
lazy val A = project.in(file("A")).settings(
foo := {
println((B / Compile / fullClasspath).value)
}
)按照原样,运行A/foo将打印B的scala-2.13类路径。如何更改这一点,以便打印B的Scala 2.12类路径?
上下文:在为A生成源代码期间,我希望在SBT中执行来自B的代码,因此我需要B的2.12个类,而不管正在编译的A的版本是什么。
发布于 2020-06-25 03:13:44
您可以使用sbt-cross而不是crossScalaVersions,然后每个scala版本都有一个单独的子项目。
https://stackoverflow.com/questions/62560160
复制相似问题