Похоже, плагин приложения использует только определенный набор каталогов. по умолчанию, смешивая варианты сборки, чтобы решить, какие файлы компилировать.
Однако я нашел пример сценария сборки, который создает конфигурацию кинжала и манипулирует gradle, чтобы использовать его для сгенерированный вывод и добавляет его в путь к классам. Он использует кинжал-компилятор.
Суть его заключается в следующем:
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, плагин должен автоматически добавлять любые srcSet через обычное построение проекта идеи, поэтому не требуется дополнительной настройки, просто создайте его заново.
person
Mark Fisher
schedule
10.08.2015