Java 为Gradle生成的源代码选择目录
我在Gradle项目中使用Dagger2生成一些源代码。现在正在生成这些源,并将其与所有类文件一起添加到Java 为Gradle生成的源代码选择目录,java,gradle,code-generation,dagger,dagger-2,Java,Gradle,Code Generation,Dagger,Dagger 2,我在Gradle项目中使用Dagger2生成一些源代码。现在正在生成这些源,并将其与所有类文件一起添加到/build/classes/main文件夹中 如何选择一个文件夹来分隔所有生成的.java文件 如何将该文件夹包含在gradle Java项目中,并让IntelliJ将其作为源代码查看,以便在项目中使用它们 默认情况下,它似乎只使用了一组特定的目录,混合了构建风格来决定编译哪些文件 然而,我确实发现它创建了一个匕首配置,操纵gradle将其用于生成的输出,并将其添加到类路径中。它使用dagg
/build/classes/main
文件夹中
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,插件应该通过idea项目的正常构建自动添加任何srcSets,因此不需要额外的配置,只需重新生成它。它看起来默认情况下只使用一组特定的目录,混合构建风格来决定编译哪些文件
然而,我确实发现它创建了一个匕首配置,操纵gradle将其用于生成的输出,并将其添加到类路径中。它使用dagger编译器
其核心是:
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,插件应该通过idea项目的正常构建自动添加任何srcset,因此不需要额外的配置,只需重新生成它