Scala的静态分析工具的当前状态是什么?

我在Scala中看到了一个关于静态分析的StackOverflow问题,但是那个在2009年得到了答案。如您所知,Scala工具变化非常迅速。

因此,我想知道是否有人熟悉Scala中静态分析工具的当前状态可以告诉我是否有一个与Scala相当的Findbugs。 我发现Findbugs为Scala发布了许多不必要的警告,可能是由于特性等原因,“对象”单例编译为字节码的方式。我听说Scalastyle不仅是Java的CheckStyle的Scala版本,它也包括Findbugs和PMD。 但是,如果它没有实现所有Findbugs和/或PMD,那么是否还有其他工具可以补充它? 或者,Scalastyle不仅适用于样式检查,还可以改善代码质量?

另外,斯卡拉与Sonar的整合呢? Scala声纳插件(与Scalastyle一起使用)是否可靠?

以下是截至2014年8月更新的一些针对Scala的目标或工作良好的答案。

就我个人而言,我认为JVM或Java的结果有太多的误报,或者主要针对Java特定的类进行检查。 例如,由于在Scala中我们不倾向于使用Java集合,所以不需要所有基于findbugs集合的检查。 另一个例子是检查在Scala中无关的静态字段的使用。

这个wartremover可以算作替代吗? 同样, -Ywarn-adapted-args-Ywarn-adapted-args命令行参数可能有助于捕捉某些types的错误。

Codacy开发了一个易于定制的工具 – scala-meta: https : //github.com/codacy/codacy-scalameta

看一看

我觉得find-sec-bug对scala有一些支持

根据Codacy,以下是工具(更新至2015年10月)

  1. ScalaStyle
  2. WartRemover
  3. 遵守
  4. 替罪羊 – 替罪羊与Scala 2.11.x +一起工作

来源: 关于Scala静态分析工具的Codacy博客

你为什么不喜欢使用一个非常强大的Scalac编译器? 例如,它有一些有用的选项,例如

  • -unchecked
  • -deprecation
  • -特征

…等等。