我想将 FindBugs 集成到 Play Framework 2 Java 项目的构建过程中。
这可能吗?如果是这样,使其工作所需的配置步骤是什么?
我假设可以使用 findbugs4sbt ,但我不确定如何设置它。
最佳答案
我昨天刚做了这个,并记录在 Integrating Findbugs Into a Play Framework 2 Project (Java) .
这是相关步骤:
project/lib
更新:在
project/plugins.sbt
中添加插件通过addSbtPlugin("de.johoop" % "findbugs4sbt" % "1.1.7")
project/Build.scala
中配置 findbugs4sbt :import de.johoop.findbugs4sbt.FindBugs._
object ApplicationBuild extends Build {
...
val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA,
settings = Defaults.defaultSettings ++ findbugsSettings)
}
那么你已经可以运行
sbt findbugs
生成 target/scala-2.9.1/findbugs/findbugs.xml
.由于 findbugs 还分析了从路由和 View 中通过 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>
)
)
关于playframework-2.0 - 在 Play Framework 2 中使用 FindBugs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13930791/