You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Scala库至Scala3时jlink构建缺失传递依赖求助

Scala3升级后jlink构建缺失传递依赖排查

我正在把一个Scala库升级到Scala3,但在jlink构建过程中遇到了缺失传递依赖的问题,构建失败提示如下:

[error] Dependee packages not found in classpath. You can use jlinkIgnoreMissingDependency to silence these.
[error] org.apache.pekko.http.scaladsl.model -> org.apache.pekko.http.javadsl.model
[error] org.apache.pekko.stream.serialization -> org.apache.pekko.stream
[error] scala.quoted -> scala
[error] scala.quoted.runtime -> scala
[error] stack trace is suppressed; run last appServer / jlinkModules for the full output
[error] (appServer / jlinkModules) Missing package dependencies

虽然可以通过jlinkIgnoreMissingDependency配置忽略这些问题,但这不是合理的实践,想明确当前场景下缺失的具体传递依赖是什么。


缺失的具体传递依赖分析:

  • org.apache.pekko.http.javadsl.model:这是Pekko HTTP的Java DSL模块,项目引入了Pekko HTTP的Scala DSL(pekko-http-scaladsl),但缺少对应的Java DSL依赖包(pekko-http-javadsl),需要在构建配置中添加该依赖。
  • org.apache.pekko.stream:这是Pekko Stream的核心模块,org.apache.pekko.stream.serialization属于该模块的子包,说明项目可能未正确引入pekko-stream核心依赖,或者依赖版本与Pekko HTTP的版本不匹配,导致该包未被纳入类路径。
  • scala.quoted 与 scala.quoted.runtime:这两个包属于Scala3标准库的Quoted API部分,归属scala-library模块。出现该问题通常是因为jlink构建时未将Scala3的标准库模块正确包含进模块路径,或者所使用的Scala3版本的模块定义存在缺失,需要确保scala-library被添加到jlink的模块集合中。

内容的提问来源于stack exchange,提问作者Chris Stewart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 02:20:58