我想将 FindBugs 集成到 Play Framework 2 Java 项目的构建过程中。
这可能吗?如果是这样,使其工作所需的配置步骤是什么?
我假设可以使用findbugs4sbt,但我不确定如何设置它。
我想将 FindBugs 集成到 Play Framework 2 Java 项目的构建过程中。
这可能吗?如果是这样,使其工作所需的配置步骤是什么?
我假设可以使用findbugs4sbt,但我不确定如何设置它。
我昨天才这样做,并将其记录在Integrating Findbugs Into a Play Framework 2 Project (Java)中。
这是相关步骤:
从 bitbucket下载我为 sbt 0.11 自定义构建的findbugs4sbt jar并将其放入project/lib
更新:project/plugins.sbt
通过添加插件
addSbtPlugin("de.johoop" % "findbugs4sbt" % "1.1.7")
配置 findbugs4sbt project/Build.scala
:
import de.johoop.findbugs4sbt.FindBugs._
object ApplicationBuild extends Build {
...
val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA,
settings = Defaults.defaultSettings ++ findbugsSettings)
}
然后你就可以运行sbt findbugs
which generate了target/scala-2.9.1/findbugs/findbugs.xml
。
由于 findbugs 还分析了 play 从路由和视图中编译的一些类(并报告了一些有关命名约定的问题),您可能希望忽略它们(因为无论如何您都无法改进它们)。为此,请使用以下 findbugs4sbt 设置(在 中project/Build.scala
)将它们从 findbugs 中排除:
val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA,
settings = Defaults.defaultSettings ++ findbugsSettings).settings(
findbugsExcludeFilters := Some(
<FindBugsFilter>
<!-- See docs/examples at http://findbugs.sourceforge.net/manual/filter.html -->
<Match>
<Class name="~views\.html\..*"/>
</Match>
<Match>
<Class name="~Routes.*"/>
</Match>
<Match>
<Class name="~controllers\.routes.*"/>
</Match>
</FindBugsFilter>
)
)