gpt4 book ai didi

scala - 使用与当前不同的 scalaVersion 评估任务

转载 作者:行者123 更新时间:2023-12-04 09:36:27 25 4
gpt4 key购买 nike

在多项目构建中,我有两个项目 A 和 B,它们交叉编译为 Scala 2.12 和 Scala 2.13。我想向项目 A 添加一个任务,该任务依赖于 B 的 Scala 2.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 的版本。

最佳答案

您可以使用 sbt-cross 而不是 crossScalaVersions,然后您将为每个 Scala 版本拥有一个单独的子项目。
https://github.com/lucidsoftware/sbt-cross

关于scala - 使用与当前不同的 scalaVersion 评估任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62560160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com