I am trying:
org.apache.maven.plugins
maven-compiler-plugin&l
There is an alternate form perhaps give it a try? Note the s on the end of <compilerArguments>
<configuration>
<compilerArguments>
<Werror />
</compilerArguments>
</configuration>
EDIT: This answer is outdated however I can't delete it as it was an accepted answer at the time.
This a bug with Maven see: https://issues.apache.org/jira/browse/MCOMPILER-120 it's been fixed in 2.4 of the Maven-compiler-plugin but I don't believe that's been released yet. tag won't work either unfortunately.
By using the workaround in this comment in the open jira issue for maven compiler plugin, the build can be failed for compiler warning.
This works for me:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<compilerId>javac</compilerId>
<source>1.6</source>
<target>1.6</target>
<compilerArgument>-Werror</compilerArgument>
<showDeprecation>true</showDeprecation>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-api</artifactId>
<version>1.8.2</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-manager</artifactId>
<version>1.8.2</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac</artifactId>
<version>1.8.2</version>
<scope>runtime</scope>
<exclusions>
<exclusion>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-api</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</plugin>
Update for the year 2015, using Maven 3.3 and Java 8.
Here's a minimal compiler configuration that enables all warnings and makes the build fail whenever warnings occur.
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<showWarnings>true</showWarnings>
<compilerArgs>
<arg>-Xlint:all</arg>
<arg>-Werror</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
Bits of note:
<showWarnings>true</showWarnings>
is required. For reasons unknown, Maven by default actively suppresses warnings with the -nowarn
flag, so the -Xlint
and -Werror
flags would be ignored.showDeprecation
doesn't need to be enabled because -Xlint:all
already emits deprecation warnings.fork
doesn't need to be enabled, even though the
documentation says otherwise.An update on 2020, I am using Spring Boot 2.2.5. The following config can stop the mvn install
when warning, error happen.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<failOnError>true</failOnError>
<failOnWarning>true</failOnWarning>
</configuration>
</plugin>
New in maven-compiler-plugin
3.6.0: the failOnWarning
flag. This worked for me:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<executions>
<execution>
<id>compile</id>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<compilerArgument>-Xlint:-processing</compilerArgument>
<failOnWarning>true</failOnWarning>
</configuration>
</execution>
</executions>
</plugin>
Note that I had to exclude the processing
lint or otherwise auto-matter's annotations would break the build with cryptic "symbol not found" errors.