5

FindBugsをPlayFramework2Javaプロジェクトのビルドプロセスに統合したいと思います。

これは可能ですか?もしそうなら、それを機能させるために必要な構成手順は何ですか?

findbugs4sbtを使用できると思いますが、設定方法がわかりません。

4

1 に答える 1

4

私は昨日これを行い、Findbugs を Play Framework 2 プロジェクトに統合する (Java)に文書化しました。

関連する手順は次のとおりです。

  1. bitbucket から sbt 0.11 用の findbugs4sbt jar のカスタム ビルドをダウンロードして、project/lib

    更新:project/plugins.sbt経由でプラグインを追加します

    addSbtPlugin("de.johoop" % "findbugs4sbt" % "1.1.7")
    
  2. で 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、これを生成し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>
  )
)
于 2013-01-08T10:15:44.590 に答える