Vert.x Code Generator breaks Java compilation with Gradle v4.7 annotationProcessor
I have reason to believe that the Vert.x Code Generator APT processor completely breaks Java compilation in Gradle when using with Gradle v4.7 and the annotationProcessor.
Found in https://github.com/vorburger/minecraft-storeys-maker/issues/53, but now reproduced in https://github.com/vorburger/vertx-gradle-errorprone-bug-reproducer. That very simple project fails when using annotationProcessor (but works when using compile). But an APT processor on compile instead of annotationProcessor breaks Error Prone. It's also "not right", and AFAIK doesn't play nice with Gradle's incremental build.
In an ideal world, Vert.x's Code Generator should "just work" (out of the box) with Gradle v4.7 annotationProcessor.
- https://docs.gradle.org/4.7/release-notes.html
- https://docs.gradle.org/4.6/release-notes.html#convenient-declaration-of-annotation-processor-dependencies
Apparently, the MVEL generator loads codegen.json and templates from its classloader. If it's expected that these are on the compile classpath (rather than the processor path), then it should use the processingEnv.getFiler() instead.
Fwiw, you should be able to reproduce it with Maven too using the <annotationProcessorPaths> from maven-compiler-plugin: https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#annotationProcessorPaths
@tbroyer we meanwhile figured it's actually got nothing to do with that - it's some APT issue in Gradle.
TODO check if https://docs.gradle.org/4.8-rc-1/release-notes.html makes any difference.