javamavenerrorprone

How do I change warnings to Errors with Error Prone?


When I run mvn clean compile

   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
      <compilerId>javac-with-errorprone</compilerId>
      <forceJavacCompilerUse>true</forceJavacCompilerUse>
      <showDeprecation>true</showDeprecation>
      <showWarnings>true</showWarnings>
    </configuration>
    <dependencies>
      <dependency>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-compiler-javac-errorprone</artifactId>
        <version>2.6</version>
      </dependency>
      <dependency>
        <groupId>com.google.errorprone</groupId>
        <artifactId>error_prone_core</artifactId>
        <version>2.0.6</version>
      </dependency>
    </dependencies>
  </plugin>

I've been trying to get MissingOverride enabled as an error, or really just to emit anything, for starters what do I need to change to see output from "warnings" then what should I do to get MissingOverride to be an error?


Solution

  • It seems like a bug with plexus-compiler-javac-errorprone that it doesn't output warnings, but to convert MissingOverride to an error, you can pass a -Xep:MissingOverride:ERROR flag to the compiler, as follows:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
            <compilerId>javac-with-errorprone</compilerId>
            <forceJavacCompilerUse>true</forceJavacCompilerUse>
            <source>1.8</source>
            <target>1.8</target>
            <compilerArgs>
                <arg>-Xep:MissingOverride:ERROR</arg>
            </compilerArgs>
        </configuration>
        <dependencies>
            <dependency>
                <groupId>org.codehaus.plexus</groupId>
                <artifactId>plexus-compiler-javac-errorprone</artifactId>
                <version>2.6</version>
            </dependency>
            <dependency>
                <groupId>com.google.errorprone</groupId>
                <artifactId>error_prone_core</artifactId>
                <version>2.0.7</version>
            </dependency>
        </dependencies>
    </plugin>