问题描述
假设如果我使用 sbt 跨版本和可能的 Scala 版本:
crossScalaVersions ++= List(
// "2.13.6","2.13.4","2.13.3","2.13.2","2.13.1","2.12.6","2.12.7","2.12.8","2.12.9","2.12.10","2.12.11","2.12.12","2.12.13","2.12.14",)
某些版本不兼容(这是预期的行为)。当我运行“sbt +test”时,构建过程总是在出现第一个兼容性错误时失败。因此,它不会提供关于哪些版本兼容的 100% 信息。
有没有办法让sbt在这种情况下只抛出一个警告,并继续尝试所有其他版本,这样程序员就可以得到一个兼容性矩阵?
为您提供有关此问题的更多背景信息。我想尝试的项目是:
... 使用 github 操作作为兼容性验证的主要 CI
解决方法
您可以使用 sbt-projectmatrix 插件 (https://github.com/sbt/sbt-projectmatrix) 将每个版本定义为一个(子)项目。
广泛用于处理涉及跨版本的复杂场景。
然后您可以通过运行 sbt test
快速查看哪个(子)项目失败。