如何使用 Maven - intellij IDEA 使用纯 java 项目尝试 Dagger 2

How to try Dagger 2 with pure java Project using Maven - intellij IDEA

我从朋友那里听说 Dagger 2 在 Android 中使用它。挺好的!

但我有一个疯狂的想法,我想在纯 java 项目中尝试 Dagger 2 示例,在 Maven 中构建并使用 intellij IDEA。但是编译器出了点问题,无法像 Dagger 用户指南那样从 ConffeeShop 界面生成 DaggerCoffeeShop class。

我的所有示例代码都与示例相同。

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

我尝试在 setting > compiler 中打开 enable annotation processing 但它不起作用。我需要你的帮助来完成我疯狂的想法。 :(

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

在 Intellij Dagger 2 中,在目录 target\generated-sources 下创建自动生成的 类。您必须将此文件夹添加到源中,然后才能使用这些自动生成的 java 类.