我正试图在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文件混淆。
答案 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目录标记为源。