flink cdc 3.0本地打包出错谁遇到过?

flink cdc 3.0本地打包出错谁遇到过?
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.1.1:shade (shade-dist) on project flink-cdc-dist: Error creating shaded jar: Problem shading JAR /Users/admin/.m2/repository/com/zaxxer/HikariCP/4.0.3/HikariCP-4.0.3.jar entry META-INF/versions/11/module-info.class: java.lang.IllegalArgumentException -> [Help 1]

展开
收起
小小鹿鹿鹿 2024-01-24 12:21:07 135 分享 版权
阿里云 AI 助理回答

问题分析

根据您提供的错误信息,flink cdc 3.0 在本地打包时出现了以下问题:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.1.1:shade (shade-dist) on project flink-cdc-dist: Error creating shaded jar: Problem shading JAR /Users/admin/.m2/repository/com/zaxxer/HikariCP/4.0.3/HikariCP-4.0.3.jar entry META-INF/versions/11/module-info.class: java.lang.IllegalArgumentException -> [Help 1]

该问题的核心是 maven-shade-plugin 插件在处理 HikariCP-4.0.3.jar 文件时,无法正确处理 META-INF/versions/11/module-info.class 文件,导致打包失败。这通常与 Java 模块化(JPMS)相关的问题有关。


解决方案

以下是针对该问题的详细解决步骤:

1. 升级 Maven Shade Plugin 版本

maven-shade-plugin 的旧版本可能不支持 Java 9+ 的模块化特性(如 module-info.class)。建议将插件版本升级到最新稳定版本(例如 3.3.0 或更高版本),以解决兼容性问题。

在项目的 pom.xml 文件中,找到 maven-shade-plugin 配置部分,并将其版本更新为最新版本:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.3.0</version> <!-- 升级到最新版本 -->
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

重新执行打包命令:

mvn clean package

2. 排除冲突的 module-info.class 文件

如果升级插件版本后问题仍然存在,可以通过配置 maven-shade-plugin 排除 META-INF/versions/11/module-info.class 文件,避免其被处理。

pom.xml 中添加以下配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.3.0</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <filters>
                            <filter>
                                <artifact>*:*</artifact>
                                <excludes>
                                    <exclude>META-INF/versions/**</exclude> <!-- 排除 module-info.class -->
                                </excludes>
                            </filter>
                        </filters>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

重新执行打包命令:

mvn clean package

3. 检查 JDK 版本

确保本地使用的 JDK 版本与项目要求的版本一致。HikariCP-4.0.3 是基于 Java 11 构建的,因此需要使用 JDK 11 或更高版本进行编译和打包。

检查当前 JDK 版本:

java -version

如果版本低于 11,请安装并切换到 JDK 11 或更高版本。例如,使用 jenv 或手动设置 JAVA_HOME 环境变量。


4. 清理本地 Maven 缓存

有时,Maven 缓存中的依赖文件可能损坏或不完整,导致打包失败。可以尝试清理本地缓存并重新下载依赖。

执行以下命令清理缓存:

rm -rf ~/.m2/repository/com/zaxxer/HikariCP

然后重新执行打包命令:

mvn clean package

5. 验证 Flink CDC 版本兼容性

根据知识库资料,阿里云实时计算 Flink 版的 MySQL 连接器在不同版本之间可能存在兼容性问题。请确保您使用的 Flink CDC 版本与 Flink 引擎版本匹配。例如:

  • 如果使用的是 Flink 1.17.x,则应选择对应的 Flink CDC 版本(如 1.17-vvr-8.0.4-1)。
  • 如果使用的是 Flink 1.19.x,则需调整 pom.xml 中的依赖版本。

总结

通过上述步骤,您可以解决 flink cdc 3.0 本地打包出错的问题。推荐的解决顺序如下:

  1. 升级 maven-shade-plugin 插件版本
  2. 排除冲突的 module-info.class 文件
  3. 确保使用 JDK 11 或更高版本
  4. 清理本地 Maven 缓存
  5. 验证 Flink CDC 和 Flink 引擎版本的兼容性

如果问题仍未解决,请提供更多上下文信息(如完整的 pom.xml 文件内容),以便进一步分析。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

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

还有其他疑问?
咨询AI助理