tbroyer/gradle-errorprone-plugin-v0.0.x

0.0.6-SNAPSHOT fails in multi-project build

Closed this issue · 10 comments

It appears that on a clean muti-project build the compiler does not see the project dependency classes and fails. If the plugin is applied to a prebuilt project, then the incremental compilation succeeds. This resulted in the plugin working locally, but failing on CI.

I have issues with some classes not being emitted (and therefore errors in downstream modules referencing those classes) but upstream modules are correctly put in the classpath in my tests.

Can you run with --debug and look for the Compiling with args line in the output? That'd help diagnose what goes wrong.

I see Compiling with error-prone compiler but no Compiling with args when running gradle clean build -d 2>&1 | tee -a log

oh, you probably meant Compiler arguments. See the log file

Looking at IntegerGenerator failure, it is listed as a source file when errorprone compiles the simulator module. When compiling the caffeine tests which fail, the simulator-1.0.0-SNAPSHOT.jar is listed as a compiler argument. However, the simuator/build/classes does not contain the file so as you said it was not emitted.

That was an error-prone bug, fixed in 2.0.1-SNAPSHOT: google/error-prone@1f912d2

FYI: 2.0.1 has been released.

I'll test with Gradle 2.3-rc1 and release 0.0.6

great, let me take a look and try running it locally too. I should just need to find the right Maven coordinates to fetch 2.0.1

weird, I added classpath "com.google.errorprone:error_prone_core:2.0.1" to the buildscript classpath and a gradle clean build still fails with errorprone

Error-prone is not loaded in the build-script but from an errorprone configuration added to the project. It defaults to latest.release so Gradle should pick 2.0.1 automatically. See the README for how to customize it.

BTW, works for me with 2.3-rc-1.

yep, it works. I had to --refresh-dependencies to force the latest.release to be resolved