2015-09-26 499 views
2

我想匕首2集成與Vaadin我的依賴注入框架。然而,看起來Vaadin和Dagger的Guava依賴包含Guava版本可能存在衝突。我已經收窄向下的IntelliJ構建命令vaadin:compile導致以下:註釋例外匕首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; 

我試圖改變匕首編譯器的範圍,我的構建路徑provided,但仍然遇到問題。

是否有解決Vaadin和匕首之間的編譯時間問題的方法嗎?

+0

請儘量排除低版本的舊番石榴依賴。新版本幾乎總是向後兼容。 – asm0dey

+0

的vaadin客戶端已設置爲「提供」,所以我不知道我怎麼能進一步排除不打破Vaadin。 – fakataha

+0

[這裏](https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html)寫入如何排除依賴的。你可以用'mvn dependency:tree'查看完整的依賴關係樹 – asm0dey

回答

0

因此,這是當你是一個移動開發使用匕首,並嘗試使用Maven切換到Web應用程序的開發會發生什麼。我無法理解/閱讀說明書使用匕首2與Maven:

在Maven項目,一個將包括在依賴你的pom.xml的 段運行時,和匕首編譯神器作爲編譯器插件的依賴 :

使用搖籃,我將使進口在的build.gradle同一個地方。我終於意識到,我需要將編譯器添加到maven插件編譯器的pom.xml的單獨部分:

<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> 

經驗教訓。