2016-02-06 6 views
0

Я использую этот пример в примере проекта.Как использовать сверло apache с java и maven?

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

Я включил зависимость в моей Maven ПОМ:

<dependency> 
    <groupId>org.apache.drill.exec</groupId> 
    <artifactId>drill-jdbc</artifactId> 
    <version>1.4.0</version> 
</dependency> 

Ошибка я получаю это: Исключение в потоке "главный" java.lang.NoSuchMethodError: com.google .common.base.Stopwatch.elapsed (Ljava/Util/параллельный/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

com.google.common.base.Stopwatch.elapsed() метод был удален в Гуаве 16. Необходимо использовать Guava 16+.

Дрель использует Guava 14.0.1. В этом причина вашей проблемы. Итак, с помощью сверла 1.4 используйте Guava 14.0.1.

Существует проблема с обновлением Гуава-Джара до 18.0 в дрель Jira. Проверьте details. Это исправлено для предстоящей версии Drill 1.6.