编译跨Scala版本的Scala库:Kamon构建报错求助
解决Kamon项目kamon-pekko/kamon-pekko-http构建报错的方法
报错原因:项目子模块的build.sbt中引用的scala_2.12_version、scala_2.13_version变量是在根目录的公共配置里定义的,单独进入子模块执行sbt无法加载这些全局变量,导致找不到值。以下是几种可行的解决方式,均针对你关注的Scala 2.13版本:
从项目根目录构建(推荐)
回到Kamon项目的根目录,执行对应模块的构建命令:- 构建kamon-pekko的Scala 2.13版本:
sbt "kamon-pekko/package" - 构建kamon-pekko-http的Scala 2.13版本:
sbt "kamon-pekko-http/package"
如果需要强制指定具体的Scala 2.13版本(比如2.13.12),可以加上版本参数:
sbt ++2.13.12 "kamon-pekko/package"- 构建kamon-pekko的Scala 2.13版本:
修改子模块的build.sbt(临时方案)
若必须在子模块目录执行构建,分别修改两个模块的build.sbt:- 打开
instrumentation/kamon-pekko/build.sbt,将报错的行替换为:crossScalaVersions := Seq("2.13.12") // 替换为项目实际支持的Scala 2.13版本号 - 对
instrumentation/kamon-pekko-http/build.sbt做相同修改
之后在子模块目录执行:
sbt package- 打开
命令行临时指定Scala版本
在子模块目录执行sbt时,直接传入Scala版本参数,跳过变量引用问题:sbt ++2.13.12 package
内容的提问来源于stack exchange,提问作者MeBigFatGuy
相关产品推荐
相关产品推荐

