Dagger 2.0 - AppEngine - gradle配置

时间:2015-09-18 23:58:52

标签: java google-app-engine gradle dagger-2

我正试图在AppEngine项目中将Dagger 1.2.2转移到Dagger 2.0.1( NOT Android one)。

使用Dagger 1.2.2简单:

compile 'com.squareup.dagger:dagger-compiler:1.2.2'
compile 'com.squareup.dagger:dagger:1.2.2'

做了这个伎俩。

使用Dagger 2.0.1:

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

不起作用(生成源但与build / classes / main / .. package ../)中的* .class文件混淆。

2 个答案:

答案 0 :(得分:1)

您也可以在没有net.ltgt.apt插件的情况下执行此操作(顺便说一句,这可能与lombok冲突)。

apply plugin: 'java'
apply plugin: 'idea'

def generatedMain = new File(buildDir, "generated/main")

compileJava {
    doFirst {
        generatedMain.mkdirs()
    }
    options.compilerArgs += ['-s', generatedMain]
}
idea.module.sourceDirs += generatedMain

dependencies {
    compileOnly 'com.google.dagger:dagger-compiler:2.8'
    compile 'com.google.dagger:dagger:2.8'
}

答案 1 :(得分:0)

我找到了解决方案。

https://github.com/tbroyer/gradle-apt-plugin

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

apply plugin: "net.ltgt.apt"

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

此外,如果您使用的是Intellij,建议采用以下配置:

  

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

我还必须从整个构建目录中删除Exclude,并将生成的/ source / apt / main目录标记为源。