有什么方法可以使IntelliJ IDEA识别Java项目中Dagger 2生成的类?


问题内容

语境

我已经使用java Gradle作为构建系统启动了一个个人项目,我想将Dagger
2用作DI。这样做的主要原因是要习惯该库并能够在较大的项目中轻松使用它。

我尝试了什么

我设法使Google示例在IntelliJ
IDEA上运行

问题

IntelliJ
IDEA一直告诉我它无法解析生成的类(在这种情况下DaggerCoffeeApp_Coffee)。不知道编写的代码是否正确(特别是在您学习使用Dagger
2时)有点烦人。

所有Java类均与Google示例相同。这是我的build.gradle文件:

apply plugin: 'java'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'

    compile 'com.google.dagger:dagger:2.0.1'
    compile 'com.google.dagger:dagger-compiler:2.0.1'
}

有什么方法可以使IntelliJ IDEA识别DaggerCoffeeApp_Coffee为生成的类(从而可以通过`ctrl +左键单击进入其实现)?


问题答案:

终于我做到了!

我必须添加aptidea插件,所以现在我的build.gradle文件如下所示:

buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "net.ltgt.gradle:gradle-apt-plugin:0.4"
    }
}

apply plugin: "net.ltgt.apt"
apply plugin: 'java'
apply plugin: 'idea'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'

    compile 'com.google.dagger:dagger:2.0.1'
    apt 'com.google.dagger:dagger-compiler:2.0.1'
}