我正在使用Dagger 2在我的Gradle项目中生成一些源代码。现在正在生成这些源,并将其与所有类文件一起添加到./build/classes/main
文件夹中。
答案 0 :(得分:0)
看起来application plugin默认情况下只使用一组特定的目录,混合构建版本来决定要编译的文件。
但是,我确实发现an example build script创建了一个匕首配置并操纵gradle将其用于生成的输出并将其添加到类路径中。它使用dagger-compiler。
它的核心是:
sourceSets {
dagger {
java {
srcDirs = ['src/dagger/java']
}
}
}
configurations {
compileDagger
}
compileJava {
description = "dagger annotation processor is loaded automatically from classpath"
sourceSets.dagger.java.srcDirs*.mkdirs()
classpath += configurations.compileDagger
options.compilerArgs += [
'-s', sourceSets.dagger.java.srcDirs.iterator().next()
]
}
clean {
description = "delete files in generated source directory tree"
delete fileTree(dir: sourceSets.dagger.java.srcDirs.iterator().next())
}
dependencies {
ext.daggerVersion = "2.0.1"
compile(
"com.google.dagger:dagger:${daggerVersion}",
"com.google.guava:guava:18.0")
compileDagger(
"com.google.dagger:dagger-compiler:${daggerVersion}")
}
关于IntelliJ,插件应该通过构思项目的正常构建自动添加任何srcSets,因此不需要额外的配置,只需重新生成它。