2015-09-26 5 views
2

Я пытаюсь интегрировать кинжал 2 в качестве рамки для инъекций зависимостей с Vaadin. Однако похоже, что существует возможный конфликт с версией Guava, включенной в зависимость от Vaadin и Dagger's Guava. Я сузил команду сборки для vaadin:compile в IntelliJ, что приводит к следующему:Исключение примечания с кинжалом 2

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project vaadin: Compilation failure 
[ERROR] Failure executing javac, but could not parse the error: 
[ERROR] 
[ERROR] 
[ERROR] An annotation processor threw an uncaught exception. 
[ERROR] Consult the following stack trace for details. 
[ERROR] java.lang.NoSuchMethodError: com.google.common.collect.Multimaps.filterKeys(Lcom/google/common/collect/SetMultimap;Lcom/google/common/base/Predicate;)Lcom/google/common/collect/SetMultimap; 

Я попытался изменить сферу Dagger компилятора в моих сборках пути к provided, но по-прежнему сталкивается с проблемой.

Есть ли способ решить эту проблему времени компиляции между Vaadin и Dagger?

+0

Пожалуйста, постарайтесь исключить более низкую версию старой зависимости от guava. Новые версии почти всегда совместимы с обратной связью. – asm0dey

+0

Клиент vaadin уже настроен на «предоставленный», поэтому я не уверен, как я мог бы исключить его дальше, не нарушая Ваадина. – fakataha

+0

[Здесь] (https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html) написано, как вообще исключать зависимость. Вы можете просмотреть полное дерево зависимостей с помощью 'mvn dependency: tree' – asm0dey

ответ

0

Так вот что может случиться, когда вы являетесь мобильным разработчиком с использованием кинжала и попробуйте переключиться на разработку веб-приложений с помощью Maven. Я не смог понять/прочитать инструкции по использованию Dagger 2 с Maven:

В проекте Maven, один будет включать время выполнения в зависимости раздел вашего pom.xml, и артефакт Кинжал-компилятор, как зависимость плагин компилятора:

Использование Gradle, я бы на месте импорта в том же месте, в build.gradle. Я, наконец, понял, что мне нужно, чтобы добавить компилятор в отдельный раздел pom.xml для Maven плагин компилятора:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
     <dependencies> 
      <dependency> 
       <groupId>org.codehaus.plexus</groupId> 
       <artifactId>plexus-compiler-javac</artifactId> 
       <version>1.8.6</version> 
      </dependency> 
      **<dependency> 
       <groupId>com.google.dagger</groupId> 
       <artifactId>dagger-compiler</artifactId> 
       <version>2.0</version> 
       <optional>true</optional> 
      </dependency>** 
     </dependencies> 
    </plugin> 

Урок.

Смежные вопросы