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

标签 java intellij-idea gradle dagger-2

上下文

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

我尝试了什么

我已经成功制作了 Google sample在 IntelliJ IDEA 上运行

问题

IntelliJ IDEA 一直告诉我它无法解析生成的类(在本例中为 DaggerCoffeeApp_Coffee)。不知道写的代码是否正确有点烦人(尤其是在学习使用 Dagger 2 时)。

所有java类都与Google sample相同.这是我的 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 + 左键单击来实现它)?

最佳答案

我发现的最简单的方法:

  1. 添加 idea 插件并添加 Dagger2 依赖,如下所示:

    plugins {
        id "net.ltgt.apt" version "0.10"
    }
    
    apply plugin: 'java'
    apply plugin: 'idea'
    
    sourceCompatibility = 1.8
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        testCompile group: 'junit', name: 'junit', version: '4.12'
    
        compile 'com.google.dagger:dagger:2.11'
        apt 'com.google.dagger:dagger-compiler:2.11'
    }
    
  2. 为 IntelliJ 打开 Annotation Processing:转到 Settings 并搜索 Annotation Processors,勾选 Enable annotation processing,如下图所示:

enter image description here

关于java - 有什么方法可以让 IntelliJ IDEA 在 Java 项目中识别 Dagger 2 生成的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33444356/

相关文章:

osgi - 为什么 bnd 为仅在方法主体中使用的包添加使用指令?

maven - JFrog Artifactory的系统日志中出现409 HTTP错误

gradle - 错误: Spring Application Cannot be resolved

java - 如何创建组合框 Action 监听器?

java - Eclipse 不会因我的插件而退出

mysql - 我有一个充满 SQL 命令的文件。如何将其插入MySQL数据库?

intellij-idea - 在 Intellij IDEA 中禁用 Lambda 表达式/匿名类的缩进

java - MQTT同时从不同应用程序订阅同一主题时未收到保留消息

java - JFileChooser,想把它锁定到一个目录

java - IntelliJ 中的 Gradle 编译依赖项排序