Findbugsは素晴らしいソフトウェアであり、私のチームはAndroidプロジェクトで作業しているときにそれを使用しています。Eclipseではすべてが素晴らしくて光沢がありますが、現在はビルドを自動化し、ビルドant
ごとにFindbugsの結果を自動的に生成しようとしています。
それほど難しいことではないようです。私はこのチュートリアルに従いました:
https
://wiki.jenkins-ci.org/display/JENKINS/Building+an+Android+app+and+test+project#BuildinganAndroidappandtestproject-FindBugs
1つの小さな問題は、に変更${android.jar}
する必要があること${project.target.android.jar}
です。
最悪の部分はThe following classes needed for analysis were missing:
、私たちが使用するライブラリプロジェクトから来るクラスに対する警告です。それらのいくつかは私たち自身のものであり、Findbugsでもそれらをスキャンしたいと思います。さらに複雑なことに、これらのライブラリの1つは別のライブラリ(これも独自のライブラリであり、スキャンが必要)を使用しているため、次のようになります。
Project A --uses--> Library B --uses--> Library C
ここで、Android SDKはこれらすべての依存関係を処理できるので(プロジェクトAで発行するとライブラリCがコンパイルされant debug
ます)、どういうわけかそれを利用して、プロジェクトが依存するライブラリのリストを取得し、findbugsタスクに提供できると思いました。残念ながら、私はそれを行うことができませんでした。
今のところ、すべてのライブラリを手動で入力することに決めました。一部class
はfindbugsタスクのプロパティに、一部はに入力しますauxClasspath
。これには、プロジェクトが依存するライブラリの一部しか分析できないという利点があります。それでも、私が最初にやろうとしたことが可能であることを願っています。パス要素を抽出する方法を教えてもらえますか