开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flink master分支源码编译提示这个错误是哪里设置的问题吗?

flink master分支源码编译提示这个错误是哪里设置的问题吗?[ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.5.1:shade (shade-flink) on project flink-table-planner_2.12: Error creating shaded jar: Problem shading JAR /root/idea-work/github-project/flink/flink-table/flink-table-planner/target/flink-table-planner_2.12-1.20-SNAPSHOT.jar entry org/apache/calcite/sql/validate/SqlValidatorImpl$NavigationExpander.class: org.apache.maven.plugin.MojoExecutionException: Error in ASM processing class org/apache/calcite/sql/validate/SqlValidatorImpl$NavigationExpander.class: 19 -> [Help 1]
[ERROR]

展开
收起
cuicuicuic 2024-03-25 10:56:57 54 0
1 条回答
写回答
取消 提交回答
  • 这个错误发生在使用 Maven 的 maven-shade-plugin 插件来创建 shaded JAR 文件时。maven-shade-plugin 插件用于合并多个 JAR 文件到一个 JAR 文件中,并且可以对字节码进行重命名以防止类冲突。

    错误提示 Error creating shaded jar: Problem shading JAR ... entry org/apache/calcite/sql/validate/SqlValidatorImpl$NavigationExpander.class 指出在尝试对类 org.apache.calcite.sql.validate.SqlValidatorImpl$NavigationExpander 进行处理时遇到了问题。

    这个问题通常是由于以下几个原因造成的:

    1. 字节码不兼容maven-shade-plugin 使用了 ASM 库来修改字节码。如果类的字节码和 ASM 插件的版本不兼容,就可能会抛出异常。

    2. 类加载器问题:有时候,在复杂的 Maven 项目中,类加载器可能会加载错误的类版本,导致插件处理时出错。

    3. 插件配置问题maven-shade-plugin 的配置可能不正确,比如包含了不应该被包含进来的类或包,或者没有正确排除某些冲突。

    为了解决这个问题,你可以尝试以下几个步骤:

    1. 检查 Maven 插件版本:确保你使用的 maven-shade-plugin 版本与 Flink 的 master 分支兼容。如果 Flink 项目中有指定插件版本,请确保使用相同的版本。

    2. 检查 Flink 项目的 pom.xml:查看 Flink 项目中 flink-table-planner 模块的 pom.xml 文件,检查 maven-shade-plugin 的配置,确保没有错误或遗漏。

    3. 清理和重建:尝试执行 mvn clean 来清理之前的构建产物,然后再次执行 mvn installmvn package 来重新构建项目。

    4. 检查 ASM 版本:有时候,手动指定或更新 ASM 库的版本可以解决兼容性问题。你可以在 pom.xml 文件中查找并更新 ASM 相关依赖的版本。

    5. 查看详细错误日志:通常 Maven 会提供更详细的错误堆栈跟踪,这可以帮助你定位问题。使用 -X 参数运行 Maven 命令 (mvn -X package) 可以输出更详细的调试信息。

    6. 搜索类似问题:在 Flink 的社区论坛、Stack Overflow 或 GitHub 仓库的 issues 中搜索是否有人遇到过类似的问题,并查看他们是如何解决的。

    7. 更新 Flink 源码:如果你从 GitHub 上拉取的是 Flink 的 master 分支,并且发现这个问题,那么可能是 Flink 社区已经意识到这个问题并在后续提交中修复了。尝试更新你的本地仓库到最新的 master 分支,并再次尝试编译。

    2024-03-25 15:27:26
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 覃立辉 立即下载
    Flink CDC Meetup PPT - 孙家宝 立即下载
    Flink CDC Meetup PPT - 徐榜江 立即下载