今天启动项目发现 flinkcdc 出现了?
好奇怪,以前没有这个需要加上 org.apache.flink flink-connector-base ${flink.version} provided
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-common</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您好!遇到此问题可能是由于以下原因:
依赖缺失或版本不匹配:您在启动Flink项目时,新增了对flink-connector-base和flink-table-common的依赖,并且指定了它们为provided作用域。这意味着这些依赖在编译和测试时需要,但在运行时会由环境提供。这通常发生在运行于像Flink集群这样的环境中,集群本身应该已经包含了这些库。
升级或配置变更:根据参考资料,实时计算Flink版经历了多次更新,包括连接器的增强与优化。可能近期您的Flink作业所依赖的环境或库版本有所更新,要求显式声明这些基础依赖来确保兼容性和功能完整性。
项目结构调整:如果您的项目结构或构建脚本(如Maven或Gradle)最近有调整,可能引入了新的依赖管理规则,导致之前隐式传递的依赖不再自动包含,因此需要手动声明。
解决方案:
确认依赖需求:首先,确认您的Flink作业确实需要这些依赖,并且提供的版本号${flink.version}与您使用的Flink版本相匹配。可以通过查看Flink官方文档或项目的pom.xml/gradle.build文件来核实。
调整依赖范围:如果您的运行环境(例如阿里云实时计算Flink版)确实会提供这些库,保持provided范围是合理的。但请确保部署环境已包含相应版本的依赖,避免运行时因找不到类而导致错误。
检查环境兼容性:参考知识库中提到的版本更新和新特性,确认您的Flink作业代码、配置以及所依赖的外部系统(如数据库连接器)与当前使用的Flink版本兼容。
清理并重建:在修改依赖后,执行mvn clean install或等效的构建命令重新构建项目,确保所有依赖正确无误地被解析和打包到您的应用中,但不会被打入最终的可执行包里,因为是provided范围。
通过上述步骤,您应该能够解决在启动项目时遇到的关于Flink CDC依赖的问题。如果问题依旧,请进一步检查是否有其他依赖冲突或环境配置不当的情况。