我在尝试:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArgument>-Werror</compilerArgument>
<fork>true</fork>
</configuration>
</plugin>
但没有快乐。现在有任何想法可以在this blog post建议的错误中获得中世纪的想法吗?
答案 0 :(得分:25)
使用Maven 3.3和Java 8进行2015年更新。
这是一个最小的编译器配置,可以启用所有警告和制作 每当发出警告时,构建都会失败。
<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>
记录:
<showWarnings>true</showWarnings>
是必需的。由于未知原因,Maven默认使用-nowarn
标志主动抑制警告,因此-Xlint
和-Werror
标志将被忽略。showDeprecation
不需要启用,因为-Xlint:all
已经发出弃用警告。fork
,也不需要启用{{1}}
文件说不然。答案 1 :(得分:5)
maven-compiler-plugin
3.6.0中的新内容:failOnWarning
标记。这对我有用:
<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>
请注意,我必须排除processing
lint或其他自动问题的注释会破坏构建时使用隐藏的#34;符号未找到&#34;错误。
答案 2 :(得分:2)
编辑:这个答案已经过时,但我无法将其删除,因为这是当时接受的答案。
这是Maven的一个错误:https://issues.apache.org/jira/browse/MCOMPILER-120它已经在Maven-compiler-plugin的2.4中得到修复,但我不相信它已经发布了。不幸的是,标签不起作用。
答案 3 :(得分:1)
2020年的更新,我正在使用Spring Boot 2.2.5。以下配置可以在发生警告,错误时停止mvn install
。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<failOnError>true</failOnError>
<failOnWarning>true</failOnWarning>
</configuration>
</plugin>
答案 4 :(得分:0)
还有一种替代形式可能试一试吗?请注意<compilerArguments>
<configuration>
<compilerArguments>
<Werror />
</compilerArguments>
</configuration>
答案 5 :(得分:0)
通过使用this comment中的open jira issue for maven编译器插件中的变通方法,编译器警告可能导致构建失败。
这对我有用:
<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>
答案 6 :(得分:0)
当我正在寻找一个可行的解决方案来使我的 Maven 构建失败以显示编译器警告时,我来到了这篇文章
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<fork>true</fork>
<compilerArgs>
<arg>-verbose</arg>
<arg>-Werror</arg>
<arg>-Xlint:all</arg>
</compilerArgs>
</configuration>
</plugin>
更多详细解释请参考以下链接