Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在一个应用程序中使用大量静态分析工具_Java_Sonarqube_Code Analysis_Findbugs_Pmd - Fatal编程技术网

Java 在一个应用程序中使用大量静态分析工具

Java 在一个应用程序中使用大量静态分析工具,java,sonarqube,code-analysis,findbugs,pmd,Java,Sonarqube,Code Analysis,Findbugs,Pmd,现在,我们有很多java静态代码分析工具 例如: 偏振模色散 持续专业发展 芬德布格斯 方格 声纳 JDepend 等等 在一个应用程序中使用所有这些工具是否好(如果使用maven,我们将在负面场景中失败构建)。它们是可互换的还是检查结果大致相同?或者只是过度? 这些工具可能有一些类别?我只使用FindBugs-greate工具。Realy有助于确定问题/潜在问题的位置 但有时您的代码应该以FindBugs提供冗余错误/警告的方式实现。我想可以用一些注释来抑制它 但是你永远不会用这个工具来代

现在,我们有很多java静态代码分析工具

例如:

  • 偏振模色散
  • 持续专业发展
  • 芬德布格斯
  • 方格
  • 声纳
  • JDepend
等等

在一个应用程序中使用所有这些工具是否好(如果使用maven,我们将在负面场景中失败构建)。它们是可互换的还是检查结果大致相同?或者只是过度?
这些工具可能有一些类别?

我只使用FindBugs-greate工具。Realy有助于确定问题/潜在问题的位置

但有时您的代码应该以FindBugs提供冗余错误/警告的方式实现。我想可以用一些注释来抑制它


但是你永远不会用这个工具来代替好的代码检查。

我只使用FindBugs-greate工具。Realy有助于确定问题/潜在问题的位置

但有时您的代码应该以FindBugs提供冗余错误/警告的方式实现。我想可以用一些注释来抑制它


但是你永远不会用这个工具来代替好的代码检查。

这取决于你想要执行的规则集。使用其他工具只有在提供额外检查时才有意义。另一个问题是,您必须以一种方式配置所有工具,使它们不会使用相互矛盾的规则进行检查。最后,您将得到大量冗余警告。
结论:尽量找到一套最少的工具来提供您需要的所有检查。

这取决于您想要执行的规则集。使用其他工具只有在提供额外检查时才有意义。另一个问题是,您必须以一种方式配置所有工具,使它们不会使用相互矛盾的规则进行检查。最后,您将得到大量冗余警告。
结论:尽量找到一组最少的工具来提供您需要的所有检查。

Sonar的目的是获得所有核心分析引擎(如PMD、Findbugs、Checkstyle)的结果,因此Sonar嵌入了所有这些工具以及更多工具

因此,我的建议是建立一个基于声纳的连续检查服务器,不要担心任何其他工具,因为声纳可以让您充分利用所有工具


您可以阅读以下关于持续检查的博客:

Sonar的目的是获取所有核心分析引擎(如PMD、Findbugs、Checkstyle)的结果,这就是Sonar嵌入所有这些工具以及更多工具的原因

因此,我的建议是建立一个基于声纳的连续检查服务器,不要担心任何其他工具,因为声纳可以让您充分利用所有工具


您可以阅读以下关于持续检查的博客:

它们不可交换,但您不需要在同一个应用程序中使用它们

类别:

  • 报告-Sonar为您正在使用的其他工具(加上JUnit等)提供了一个漂亮的可视化仪表板
  • 静态分析-PMD、FindBugs、CheckStyle
  • 重复代码-CPD
  • 设计/包依赖关系-JDepend

  • 它们不可交换,但您不需要在同一应用程序中全部交换

    类别:

  • 报告-Sonar为您正在使用的其他工具(加上JUnit等)提供了一个漂亮的可视化仪表板
  • 静态分析-PMD、FindBugs、CheckStyle
  • 重复代码-CPD
  • 设计/包依赖关系-JDepend

  • 在(用于Maven项目的复合静态分析工具)中,我们使用Checkstyle、PMD、FindBugs和一些自定义规则。在某些地方,它们相互冲突,我们必须通过禁用其中一个中的某些规则来解决这些冲突。除此之外,这三个开源静态分析器共存并实施最重要(也是最简单)的设计原则。

    在(Maven项目的复合静态分析工具)中,我们使用Checkstyle、PMD、FindBugs和一些自定义规则。在某些地方,它们相互冲突,我们必须通过禁用其中一个中的某些规则来解决这些冲突。除此之外,这三个开源静态分析器共存于一起,并强制执行最重要(也是最简单)的设计原则。

    虽然它们在一定程度上帮助了开发人员,但这些报告中的大多数都是为了向项目经理和客户炫耀。如果Sonar包含PMD,为什么要全部使用它们,Checkstyle和FindBugs?我不打算全部使用它们,我只是想看看它们的区别。据我所知,仅使用sonar是最好的方法。虽然它们在一定程度上帮助了开发人员,但这些报告中的大多数都是为了向项目经理和客户炫耀。如果sonar包含PMD、Checkstyle和FindBugs,为什么要全部使用它们?我不打算全部使用它们,我只是想看看它们之间的区别。据我所知,仅使用声纳的最佳方法是+1。它可以通过FindBugs
    @SuppressWarnings
    注释进行抑制。参数是在查看错误详细信息时可以看到的唯一字符串标识符。注释名称与java.lang.SuppressWarnings相同,这有点令人讨厌。因此,在同一类中使用这两个函数时,必须使用完全限定的函数。+1可以使用FindBugs
    @SuppressWarnings
    注释来抑制它。参数是在查看错误详细信息时可以看到的唯一字符串标识符。注释名称与java.lang.SuppressWarnings相同,这有点令人讨厌。因此,当这两个函数在同一个类中使用时,必须使用完全限定的函数。