2016-12-04 68 views
2

我聽到朋友的Dagger 2在Android中使用它。它相當不錯!如何試用匕首2與純Java項目使用Maven - intellij IDEA

但是我有一個瘋狂的想法,我想在Maven的純Java項目中構建Dagger 2示例並使用intellij IDEA。但編譯器出錯,無法從ConffeeShop界面(如Dagger用戶指南)生成DaggerCoffeeShop類。

我所有的示例代碼都與示例相同。

CoffeeShop coffeeShop = DaggerCoffeeShop.builder() .dripCoffeeModule(new DripCoffeeModule()) .build();

我依次setting>compiler試穿enable annotation processing,但它不能正常工作。我需要你的幫助來完成我瘋狂的想法。 :(

+2

它不是一個瘋狂的想法。 Dagger2可以在Java中使用。確保你已經在Maven/Gradle中正確導入了庫(或者如果你不使用Maven/Gradle,那麼在你的類路徑中) – Bajal

+0

我在pom.xml中聲明瞭依賴關係,下面的代碼和我可以正常使用Dagger2註釋。只能從CoffeShop界面生成DaggerCoffeShop類無法完成。 ' com.google.dagger 匕首 2.7' – Wing

+0

我沒讓它也行。 – mbob

回答

0

使用JDK 8應該支持JDK 9,但我並沒有弄清楚如何做到這一點;)

務必在POM包括:

<dependencies> 

    <dependency> 
     <groupId>com.google.dagger</groupId> 
     <artifactId>dagger</artifactId> 
     <version>2.11</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.dagger</groupId> 
     <artifactId>dagger-compiler</artifactId> 
     <version>2.11</version> 
     <scope>provided</scope> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.6.1</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
       <annotationProcessorPaths> 
        <path> 
         <groupId>com.google.dagger</groupId> 
         <artifactId>dagger-compiler</artifactId> 
         <version>2.11</version> 
        </path> 
       </annotationProcessorPaths> 
      </configuration> 
     </plugin> 
    </plugins> 
</build>