【问题标题】:Using @NotNull in a project where both IntelliJ and Eclipse developers are working在 IntelliJ 和 Eclipse 开发人员都在工作的项目中使用 @NotNull
【发布时间】:2011-06-05 07:38:57
【问题描述】:

IntelliJ IDEA 的一位同事(从事另一个项目)向我展示了惊人的 @NotNull 注释。我在这里阅读了关于如何开始在任何地方添加@NotNull 节省大量时间和头痛的消息(当IntelliJ 10 检测到 null 会造成严重破坏时,它甚至可以自动将@NotNull 添加到旧代码中)。

自从我阅读了我的第一条“可能的@NotNull 违规” 消息(在 IDE 中,即使是在部分 .java 文件中编译)我的下巴掉了下来,我上瘾了。

所以我想知道:如果我们想在开发人员同时使用 Eclipse 和 IntelliJ 的项目中开始使用 @NotNull,有什么需要知道的吗?

我知道 IntelliJ 附带 annotations.jar。这与 Eclipse 兼容吗?

【问题讨论】:

  • @duffymo:我知道,我知道......但我仍然想知道我们如何同时使用 Eclipse 和 IntelliJ 并且仍然使用 @NotNull。在某种程度上,如果 Eclipse 没有实时警告 @NotNull 可能的违规行为,这不是问题,只要使用 Eclipse 的开发人员仍然可以在他们的项目中使用注释。如果有这方面经验的人可以发表评论,那就太好了 :) 但是,是的...... IntelliJ 摇滚了很多 :)
  • 没有什么比在 IntelliJ 中查看使用 Eclipse 开发的代码更令人沮丧的了。警告无处不在。

标签: java eclipse annotations intellij-idea


【解决方案1】:

还可以将注释存储在源之外。 设置 > 代码样式 > 代码生成 > 使用外部注释。 然后将注释存储在 annotations.xml 文件中,而不是存储在源文件中。这样 Eclipse 用户就不必查看注释。 annotations.xml 的位置可以配置,最好将文件与项目一起存储在版本控制中。

http://www.jetbrains.com/idea/webhelp/using-external-annotations.html http://blogs.jetbrains.com/idea/2008/02/external-annotations/

【讨论】:

  • 我记得至少一年前读到过,但从未尝试过。您知道它是否可以与 Mercurial 等 VCS 和 DVC 很好地混合使用吗?我有点担心,因为我经常需要跳转到另一个分支、回滚、应用“daggy fix”等。
【解决方案2】:

您可以在 Eclipse 中使用 annotations.jar,但您可能不会获得任何好处...请参阅 this SO post

【讨论】:

    【解决方案3】:

    您可以使用 FindBugs 的 @NonNull 和相关 IDE 插件支持这两种 IDE。

    【讨论】:

      【解决方案4】:

      Findbugs 具有类似的功能,但集成是 IntelliJ 内置功能的一个苍白阴影。

      【讨论】:

        【解决方案5】:

        我会问为什么一个团队不使用通用 IDE。为什么不对其中一个进行标准化? (你知道我会推荐你​​选择哪一个。)

        【讨论】:

        • 因为它可能会以 Eclipse 的形式结束,而没有 IntelliJ 用户想要这样。
        • 我实际上见过一家公司,人们希望 Java 项目开发环境最终产品都完全可移植。他们的理由是,如果一些开发人员可以在 Windows/Eclipse 上工作,其他人可以在 Linux/Eclipse 上工作,其他人可以在 Mac/IntelliJ 上工作,等等,并且可以部署在 Linux(例如本地)和 Solaris(例如在 preprod 和 prod 中) ,那么这意味着该项目更有可能是精心设计/架构/设置/等。我认为这是有道理的。
        • 我可以告诉你来自 Mercurial / IntelliJ 并且不得不在 CVS / Eclipse 环境中工作真的很可悲 :( 这就是说一些开发人员确实反抗并在没有告诉任何人的情况下建立了自己的 VCS 服务器 (不要重复 ;) 并且只偶尔提交一次 CVS。
        • SVN/IntelliJ 适合我。我使用 Eclipse 已经很长时间了,并且很高兴在为一个不会花钱购买工具的雇主工作时拥有这么好的东西。但自从五年前我第一次接触 IntelliJ 以来,我就再也没有回去过。这简直是​​最好的。
        猜你喜欢
        • 1970-01-01
        • 2015-01-31
        • 2018-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多