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

编译 flink-1.1.8源码报这个错,遇到过吗?

编译 flink-1.1.8源码报这个错,有大佬遇到过吗?
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.4.1:shade (shade-flink) on project flink-table-planner_2.12: Error creating shaded jar: Problem shading JAR /Users/fangwei/workspace/flink-sources/1.18/flink-release-1.18.0/flink-table/flink-table-planner/target/flink-table-planner_2.12-1.18.0.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]

展开
收起
真的很搞笑 2024-06-16 16:47:01 140 0
2 条回答
写回答
取消 提交回答
  • Error in ASM processing class,搜一下,很多说明 ,此回答整理自钉群“【①群】Apache Flink China社区”

    2024-06-17 20:20:11
    赞同 4 展开评论 打赏
  • 技术浪潮涌向前,学习脚步永绵绵。

    遇到Maven编译Flink源码时出现的这类错误,通常是由于Maven插件(在这个例子中是maven-shade-plugin)在处理依赖或构建工件过程中遇到了问题。错误信息指出在尝试创建阴影(shaded)jar包时,特定类org/apache/calcite/sql/validate/SqlValidatorImpl$NavigationExpander.class的处理出现了问题。这里有几个可能的原因和相应的解决方法:

    原因分析

    1. ASM处理错误: maven-shade-plugin使用ASM库来操作字节码,以便进行类的重定位等操作。这个错误可能是因为ASM在处理特定类时遇到了不兼容或格式上的问题。

    2. 类冲突: 有可能是由于依赖冲突或不同版本的类库被同时包含进来了,导致ASM在处理时无法正确解析类结构。

    3. 插件版本不兼容: 特定版本的maven-shade-plugin可能与项目中的某些依赖或构建配置不兼容。

    解决方法

    1. 更新插件版本: 尝试升级maven-shade-plugin到最新版本。有时候,较新的版本已经解决了之前存在的问题。在pom.xml中找到maven-shade-plugin的配置,更新其版本号。

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>最新版本号</version>
        <!-- 其他配置 -->
      </plugin>
      
    2. 排除冲突: 检查是否有类库冲突,特别是与calcite相关的依赖。在pom.xml中使用<exclusions>标签排除可能引起冲突的依赖。

      <dependency>
        <groupId>groupId</groupId>
        <artifactId>artifactId</artifactId>
        <version>version</version>
        <exclusions>
          <exclusion>
            <groupId>冲突的groupId</groupId>
            <artifactId>冲突的artifactId</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      
    3. 清理和重试: 清理本地Maven缓存(mvn clean),删除.m2目录下的相关依赖,然后重新下载依赖和构建项目。

    4. 查看详细日志: 添加-X选项到Maven命令以获得更详细的错误日志,这有助于定位问题所在。

      mvn clean install -X
      
    5. 检查Calcite版本: 确认calcite库的版本与Flink 1.18.0兼容。如果是在Flink源码中直接修改依赖,确保所有相关依赖都与Flink版本相匹配。

    6. 社区求助: 如果上述方法都不能解决问题,可以在Apache Flink的用户邮件列表或GitHub issue中搜索类似问题,或直接提出新的issue。Flink社区活跃且乐于助人,可能会有其他开发者遇到过相同问题并能提供帮助。

    记得,当你在处理特定版本的Flink源码时,最好参考该版本的官方文档和已知问题列表,因为不同的Flink版本之间可能存在差异。

    2024-06-17 09:36:35
    赞同 1 展开评论 打赏

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

相关产品

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

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载