Я работаю над плагином Gradle, который регистрирует задачу JavaCompile
, которая должна запускать процесс обработки аннотаций.
Вот то, что у меня сейчас
private fun Project.runConfiguration(variants: DomainObjectSet<out BaseVariant>) {
variants.all { variant ->
// Assert Shuttle annotation processor is present or throw exception
val processor = ShuttleProcessor::class.java.canonicalName ?: throw ShuttleCompilerNotFoundException()
val packageName = variant.getPackageName()
val task = tasks.register(
"generateShuttle${variant.name.capitalize()}Sources",
JavaCompile::class.java
) {
it.group = TASK_GROUP
it.source = variant.getSourceFolders(SourceKind.JAVA).first()
it.options.annotationProcessorPath = variant.annotationProcessorConfiguration
it.options.compilerArgs.addAll(listOf(
"-proc:only", "-implicit:none",
"-processor", processor
))
}
variant.registerJavaGeneratingTask(task.get())
}
}
В android проект, когда я применяю свой плагин и запускаю задачу с Gradle, пока ничего не происходит. Я даже пытался выдать исключение в первую строку моего процессора, но все равно безуспешно.
Я что-то упускаю или что-то делаю не так? Также, как я могу сказать задаче, что он должен использовать ShuttleProcessor
в качестве процессора аннотаций.
Я работаю с kotlin
, а не с Groovy
.
Спасибо.