跨构建Scala库

aiazj4mn  于 2023-02-22  发布在  Scala
关注(0)|答案(1)|浏览(230)

我想将我的一些Bazel目标交叉构建到Scala 2.12和2.13。作为更复杂的一点,我需要能够表达跨目标依赖关系(例如,一些2.13目标可能对2.12目标具有Bazel依赖关系)。
注:这不是常规的库依赖项(例如,当编译2.13JAR时,依赖2.12构建的JAR显示在类路径上),因为这几乎肯定会导致由于在类路径上具有两个不兼容版本的Scala标准库而引起的问题。这只是我需要构建依赖JAR的一个例子,这样我就可以在2.13目标中的一些集成测试中使用它。

目前为止我在网上找到的...

  • This issue from rules_scala似乎不支持将Scala版本烘焙到目标中,而是必须全局选择Scala版本。
  • This Databricks post有一个跨构建部分,这正是我所希望的(例如,每个支持的Scala版本的每个库生成一个目标),但该帖子中的片段似乎没有任何可运行的Bazel代码支持。
  • This later post by Databricks也暗示了cross_scala_lib规则,但也没有任何附带的代码。
lzfw57am

lzfw57am1#

写了一篇博客文章cross build anything with Bazel,使用Scala交叉构建作为例子,同时使用传统的WORKSPACE方法和新的MODULE.bazel方法。
有关工作示例,请参见https://github.com/eed3si9n/gigahorse/pull/85

相关问题