如何用Bazel交叉构建Scala 2.12/2.13库并实现跨版本目标依赖?
Bazel Scala 2.12/2.13交叉构建及跨版本依赖需求
我需要将部分Bazel目标交叉构建为Scala 2.12和2.13版本,同时要实现跨版本目标依赖——比如部分2.13目标需要依赖2.12目标的Bazel构建产物。
注意:这种依赖并非常规库依赖(即编译2.13 JAR时将2.12构建的JAR加入类路径),否则会因类路径上存在两个不兼容的Scala标准库版本导致问题。我仅需构建该依赖JAR,用于2.13目标的集成测试场景。
已调研情况
- rules_scala不支持在目标级别嵌入Scala版本,只能全局配置选择Scala版本
- Databricks的两篇文章中提到的交叉构建方案(每个库针对支持的Scala版本生成对应目标)完全符合我的需求,但仅给出思路,未提供可运行的Bazel代码;其中后续文章提到的
cross_scala_lib规则,同样没有附带实现代码
内容的提问来源于stack exchange,提问作者Alec
相关产品推荐
相关产品推荐

