如何使用java和maven的apache钻?

时间:2016-02-06 05:20:17

标签: java maven apache-drill

我正在使用此示例尝试项目中的钻取示例。

https://github.com/vicenteg/DrillJDBCExample/blob/master/src/main/java/com/mapr/drill/DrillJDBCExample.java

我在我的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

1 个答案:

答案 0 :(得分:0)

在番石榴16中删除了

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修复的。