ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – 强制IntelliJ使NonNull违规的编译失败

2019-06-29 22:48:36  阅读:205  来源: 互联网

标签:java intellij-idea findbugs


我有以下简单的代码来测试IntelliJ中的NonNull注释.

然后我去:
IntelliJ – >档案 – >设置 – >检查 – >可能的错误 – >恒定条件和例外
我设置Severity:作为错误.

这样做,它标记“print(null);”行如预期的错误.
但是,执行IntelliJ – >构建 – >重建项目,
它工作,它没有显示任何错误,也没有显示任何警告.

为什么会这样?为什么IntelliJ在构建项目时不会抱怨?

如何查看NonNull违规列表?

如果发现NonNull违规,有没有办法强制IntelliJ使编译失败?

注意:设置IntelliJ以考虑firebug注释(默认情况下);
而且,使用org.jetbrains.annotations.NotNull会产生完全相同的结果.

的src /主/爪哇/测试/ Hello.java

package test;
import edu.umd.cs.findbugs.annotations.NonNull;
public class Hello {
    static public void print(@NonNull Object value) {
        System.out.println("value: " + value.toString());
    }

    static public void main(String[] args) {
        if (args.length > 0) {
            print(args[0]);
        } else {
            print(null);
        }
    }
}

和pom.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>hello</groupId>
  <artifactId>hello</artifactId>
  <version>1.0</version>

  <dependencies>
    <dependency>
      <groupId>net.sourceforge.findbugs</groupId>
      <artifactId>annotations</artifactId>
      <version>1.3.2</version>
    </dependency>
    <dependency>
      <groupId>net.sourceforge.findbugs</groupId>
      <artifactId>jsr305</artifactId>
      <version>1.3.7</version>
    </dependency>
  </dependencies>
</project>

解决方法:

代码检查不是编译器错误,如果检查报告了某些问题,即使严重性级别设置为错误,也无法编译失败.

要获得项目范围的结果,请使用Analyze |使用适当的检查配置文件检查代码.

在IDEA项目问题跟踪器中有similar feature request,但它似乎不是很受欢迎(差不多2岁零票).

标签:java,intellij-idea,findbugs
来源: https://codeday.me/bug/20190629/1330722.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有