我正在使用此示例尝试项目中的钻取示例。
我在我的maven pom中包含了依赖:
<dependency>
<groupId>org.apache.drill.exec</groupId>
<artifactId>drill-jdbc</artifactId>
<version>1.4.0</version>
</dependency>
我得到的错误是: 线程“main”中的异常java.lang.NoSuchMethodError:com.google.common.base.Stopwatch.elapsed(Ljava / util / concurrent / TimeUnit;)J
我试图通过添加Google Guava来解决它:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
但是,当我在我的pomfile中包含依赖项时,我收到以下错误:
Exception in thread "main" java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.<init>()V from class org.apache.drill.common.config.DrillConfig
答案 0 :(得分:0)
com.google.common.base.Stopwatch.elapsed()
方法。您必须使用Guava 16 +。
Drill正在使用 Guava 14.0.1 。 这就是你问题的原因。因此,使用Drill 1.4,使用Guava 14.0.1。
在Drill Jira中将Guava Jar升级为 18.0 存在问题。检查details。它是针对即将推出的Drill版本1.6修复的。