【问题标题】:@Nullable/@NotNull with IntelliJ IDEA, Maven & JSR 305@Nullable/@NotNull 与 IntelliJ IDEA、Maven 和 JSR 305
【发布时间】:2010-12-17 07:42:20
【问题描述】:

我真的很喜欢现在可以使用 JSR 305 或 Jetbrains 的 IntelliJ 专有注释的代码检查功能。 不幸的是,两种实现(JSR 305 和 Jetbrains')都不能很好地混合:

  • IntelliJ 显然只了解它自己的专有注释集并将它们很好地集成。
  • 在我的 Maven 构建中使用 Findbugs,它只支持 JSR-305 注释。

唯一可能的解决方法可能是使用 JSR-305 并在 IntelliJ 中使用 Findbugs 插件。 有人有更好的主意吗? (请不要说改变你的IDE;))。

谢谢 托马斯

【问题讨论】:

  • 堆栈溢出提示:当询问特定于特定编程语言的问题时,将该语言添加为标签。 (我为你添加了java标签。)
  • JetBrains 注释是 Apache2 许可开源(例如 org.jetbrains.annotations.NotNull/Nullable)。至于将它们与 FindBugs 混合,请参阅下面的答案(IntelliJ 支持您为 IDE NotNull/Nullable 支持定义的任何注释)

标签: java maven intellij-idea findbugs jsr305


【解决方案1】:
【解决方案2】:

我迟到了,但对于未来的读者来说,这可能会很有趣。

从 IntelliJ 15.0.2 开始,您可以本机使用 JetBrains 以外的其他注释:

  • 进入设置
  • 转到Editor > Inspections 标签
  • 转到Java > Probable Bugs > "@NotNull/@Nullable problems"
  • 在选项面板的末尾(您可能需要滚动),有一个 Configure annotations 按钮,您可以在此对话框中从众所周知的注释列表中进行选择:​​i>

【讨论】:

    【解决方案3】:

    由于这个问题是 IntelliJ 特有的,因此最好在 IntelliJ 论坛上提问。你可能会发现这个线程很有趣http://devnet.jetbrains.net/message/5262800。使用 Findbugs 的缺点是它不提供用于运行时检查的代码注入,而且 JSR-305 似乎不太可能很快获得批准。

    【讨论】:

    • 彼得,感谢您的链接。在这里发布它是因为我认为它不仅仅是 IntelliJ ;) 似乎 Java 再次缺乏统一的解决方案。也许我会修补 Findbugs 以将 Jetbrains 注释考虑在内,并在获得批准后切换到 JSR-305(如果有的话)。
    【解决方案4】:

    根据 IntelliJ 问题IDEA-64677

    • 支持任意 @Nullable/@NotNull 注解应该 在 IDEA 10.0.3 中可用
    • 可能会有一些手动配置步骤来启用对非专有注释的支持(请参阅该页面上 Anna 的 cmets)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-18
      • 2011-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-02
      相关资源
      最近更新 更多