Exception in thread "main" org.apache.flink.table.api.NoMatchingTableFactoryException

今天在做Flink table开发的时候报了下面的错:

Exception in thread "main" org.apache.flink.table.api.NoMatchingTableFactoryException: Could not find a suitable table factory for 'org.apache.flink.table.delegation.ExecutorFactory' in the classpath.

Reason: No factory implements 'org.apache.flink.table.delegation.ExecutorFactory'.

经过思考和查询,知道是pom文件中依赖出现了问题:直接下面的 provided删除即可。

<dependency>
     <groupId>org.apache.flink</groupId>
     <artifactId>flink-table-planner-blink_2.11</artifactId>
     <version>1.10.0</version>
     <scope>provided</scope>
</dependency>

解析:
xxx含义:
默认就是compile,什么都不配置也就是意味着compile。compile表示被依赖项目需要参与当前项目的编译,当然后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去。默认的scope,在部署的时候将会打包到lib目录下,项目在编译,测试,运行阶段都需要。
provided适合在编译和测试的环境,他和compile很接近,但是provide仅仅需要在编译和测试阶段,同样provide将不会被打包到lib目录下。

你可能感兴趣的:(Exception in thread "main" org.apache.flink.table.api.NoMatchingTableFactoryException)