java - 如何让 Java maven 构建因编译器警告而失败?

标签 java maven compiler-construction build lint

我正在尝试:

        <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 中建议的此类错误。 ?

最佳答案

2015 年更新,使用 Maven 3.3 和 Java 8。

这是一个最小的编译器配置,它可以启用所有警告并使 只要出现警告,构建就会失败。

<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不需要启用,即使 文档另有说明。

关于java - 如何让 Java maven 构建因编译器警告而失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9192613/

相关文章:

java - Android 应用程序,Java 的 Google map api 位置验证

pointers - 标记和清除垃圾收集中的指针反转会给您带来什么?

java - java中的堆栈无法正常工作?

maven - 为 Liferay 手动创建可部署的 JAR

maven - 使用Gradle保存所有反射元数据

module - 如何在maven多模块项目中仅运行父pom.xml

c - 适用于 Windows 的最简单的 C 编译器和编辑器?

compiler-construction - 字节码解析指令和机器语言之间的区别?

java - 当整个学生对象是唯一的时,为什么 TreeSet 不能让学生年龄相似?

java - 2D游戏中的碰撞