After adding ErrorProne to my project as specified on https://errorprone.info/docs/installation by adding this to my pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>8</source>
<target>8</target>
+ <compilerArgs>
+ <arg>-XDcompilePolicy=simple</arg>
+ <arg>-Xplugin:ErrorProne</arg>
+ </compilerArgs>
+ <annotationProcessorPaths>
+ <path>
+ <groupId>com.google.errorprone</groupId>
+ <artifactId>error_prone_core</artifactId>
+ <version>2.5.1</version>
+ </path>
+ </annotationProcessorPaths>
</configuration>
</plugin>
mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V gets me a compiler crash on openjdk8, and a compilation error where @AutoValue generated code isn't found on openjdk11.
See commit here, was part of this PR.
See full errors from Travis CI here
$ git clone git://github.com/google/acai
(make above edit)
$ mvn clean package
2.5.1
No. Not sure if the problem is Maven, the maven-compiler-plugin version, AutoValue or the error_prone version either.
The error is:
java.lang.RuntimeException: java.lang.NoSuchMethodError: com.sun.tools.javac.util.JavacMessages.add(Lcom/sun/tools/javac/util/JavacMessages$ResourceBundleHelper;)V
at com.sun.tools.javac.main.Main.compile(Main.java:473)
at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)
at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)
When running on JDK 8, are you following the JDK 8-specific instructions in http://errorprone.info/docs/installation, in particular the part about passing -J-Xbootclasspath/p:?
Oops sorry — I've now added that part, and the error changes:
[ERROR] /home/travis/build/google/acai/src/main/java/com/google/acai/GuiceberryCompatibilityModule.java:[119,17] error: cannot find symbol
symbol: class AutoValue_GuiceberryCompatibilityModule_MethodReference
location: class MethodReference
So it doesn't crash anymore with JDK 8, and now fails with the missing AutoValue processing in both 8 and 11.
error: cannot find symbol ... AutoValue_...
Did you see the bit about "Using ErrorProne in concert with other Annotation Processors" at the end of http://errorprone.info/docs/installation ?
You likely need to move the dependency on AutoValue to <annotationProcessorPaths>.
Awesome, that fixed it, thank you!
Would it make sense to add explicit mention of the <annotationProcessorPaths> to the Maven section in the doc? I ignored that at the end because I thought it didn't apply, and I didn't need it before.
Would it make sense to add explicit mention of the
to the Maven section in the doc? I ignored that at the end because I thought it didn't apply, and I didn't need it before.
Good idea, how does https://github.com/google/error-prone/commit/0b8bd1c7b78515d28088b6c3f0570b4bf8a47502 look?
Looks good, thanks!
Most helpful comment
Good idea, how does https://github.com/google/error-prone/commit/0b8bd1c7b78515d28088b6c3f0570b4bf8a47502 look?