Dagger 2注释处理器未运行Java Gradle IntelliJ项目

时间:2015-08-09 20:17:42

标签: java intellij-idea gradle dagger dagger-2

我正在玩Gradle java项目,而且我很难让注释处理器运行。出于某种原因,当我运行intellij配置(如下图所示)时,注释处理器不运行。我假设这是因为配置的Make命令配置为在启动之前运行。注释处理器似乎在调用assemblebuild时运行。

调用./gradlew clean make时,此问题可重现。在致电./gradlew clean assemble./gradlew clean build时,我没有遇到此问题。什么是解决这个问题的最佳做法?

enter image description here

3 个答案:

答案 0 :(得分:4)

IntelliJ需要为项目启用注释处理。下面是一个图像,详细说明了为IntelliJ启用注释处理的位置:

偏好设置>构建,执行,部署>编译器>注释处理器>选中“启用注释处理”

enter image description here

答案 1 :(得分:2)

  • 确保为项目启用了注释处理(如@ spierce7所述)
  • 还要确保{build(1)}在您的build.gradle

示例build.gradle片段:

apply plugin: 'idea'

from:https://github.com/tbroyer/gradle-apt-plugin(github for net.ltgt.apt plugin)

  

IntelliJ IDEA

     

当应用构思插件时,构思任务将自动配置   生成的文件以启用intelliJ IDEA中的注释处理。

     

然而,在IntelliJ IDEA中使用Gradle集成时   比想法任务,您必须手动启用注释   处理:在设置...→构建,执行,部署→编译器→   注释处理器,选中启用注释处理和获取   项目类路径中的处理器。模仿Gradle行为和   生成文件行为,您可以配置生产和测试   source目录构建/生成/源/ apt / main和   build / generated / source / apt / test分别选择Store   生成的源相对于:模块内容根。

     

请注意,从IntelliJ IDEA 2016.1开始,您必须取消选中   导入项目时,为每个源集创建单独的模块。

     

无论如何,想法插件必须应用于项目。

     

从IntelliJ IDEA 2016.3开始,另一种方法是委托   IDE构建对Gradle本身的操作:   https://www.jetbrains.com/idea/whatsnew/#v2016-3-gradle

答案 2 :(得分:-2)

您没有应用APT插件

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

apply plugin: 'com.neenbedankt.android-apt'

或者核心,它的纯Java替代方案:

https://plugins.gradle.org/plugin/net.ltgt.apt

同时尝试使用apt代替providedCompile