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

编译Flink 1.15.0的flink-table-planner_2.12报错,如何解决类型缺失问题?

编译Flink 1.15.0版本的flink-table-planner_2.12时出现以下类型找不到的错误,涉及调用Java代码的Scala文件,未修改过代码,疑似循环导入导致:

error: not found: type SqlExprToRexConverterFactory
[INFO]   def getSqlExprToRexConverterFactory: SqlExprToRexConverterFactory
error: not found: type SqlExprToRexConverterFactory
[INFO]     toRexFactory: SqlExprToRexConverterFactory)
error: not found: type SqlExprToRexConverterFactory
[INFO]   override def getSqlExprToRexConverterFactory: SqlExprToRexConverterFactory = toRexFactory

解决步骤

  • 统一依赖版本:确保项目中所有Flink相关依赖(如flink-table-api-java、flink-table-common等)的版本均为1.15.0,避免混合不同版本导致类缺失。
  • 清理重构项目:执行mvn clean install -DskipTests(Maven)或./gradlew clean build -x test(Gradle),清理旧编译缓存和中间文件,消除循环导入引发的类加载异常。
  • 调整编译顺序:跨Java/Scala的循环导入问题常因编译顺序错误导致。自建项目需保证Java代码先于依赖它的Scala代码编译;编译Flink源码时,严格遵循官方步骤,指定正确Scala版本参数-Dscala.version=2.12.15(Flink 1.15.0对应版本)。
  • 校验源码完整性:确认Flink 1.15.0源码包完整,org.apache.flink.table.planner.calcite包下的SqlExprToRexConverterFactory.java文件未缺失。Git克隆代码需执行git checkout tags/release-1.15.0,确保代码处于正确标签版本且无本地修改。
  • 排查冲突依赖:通过mvn dependency:tree(Maven)或./gradlew dependencies(Gradle)查看依赖树,排查第三方库是否引入了不同版本的Calcite或Flink组件,及时排除冲突依赖。

内容的提问来源于stack exchange,提问作者John Lee

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 00:15:00