Javaで静的解析がお手軽にできるツールということでレポート化できんだっけ?というので調べたときのメモ Java 17環境(Java 8でも同じだと思うが) その後しばらくして経つと、trust selectedを選ぶ そのあとEclipse再起動により プロジェクト右クリック Configure Workspace Settingsを押す
右クリックによりFind Bugsで出せる spot-bugs-maven-pluginの最新版は4.8.3であるようだ 注:環境によっては次の依存も追加しないといけないかもしれない あと場合によってはmaven-site-pluginの依存するhttpcoreあたりも追加する必要があるかも。 2)pom.xmlのbuild.pluginsの中に下記を追加 3)pom.xmlのreporting.pluginsに下記の記載を追加 ※かなり緩い設定にしています。これはEclipseのプラグインの設定画面の次にあたるっぽいです。
effort -> analysis effort
threshold -> Minimum confidence to Report
設定を書かないとあらゆるものが出力されます(本来はそれで良いが)。
ちなみにカテゴリー(Bad Practice)の単位でしぼりたかったものの何故かできませんでした。
SpotBugs Mavenプラグインの使い方 — spotbugs 4.8.3 ドキュメント あとは プロジェクト右クリック > Run As > Run Configuration あとはRun
警告された例 Integer.valueOf(1).toString() → String.valueOf(1)かInteger.toString(1)前提条件
Maven使用(Gradleの場合は末尾の参考サイトを)
Eclipse(英語版)のPleadesじゃないのを使ってる想定
自PCにMavenをインストールしてなくてmvnwを使っていて、
基本的にEclipseのGUIでbuild/installする前提
SpotBugsは4.8.3を使いますインストール
Help
> Install new software
Work with:
https://spotbugs.github.io/eclipse/
Add
を押しとく
Name: SpotBugs
あとは選択してNext
、agreeしてFinish
プロジェクト右クリックでSpotBugsが出てくるようになる
4.8.3が選ばれた。設定
プロパティでSpotBugsを選ぶ
お好みですが、かなり緩い設定にしてます。
後述のプラグインで簡単に制御できるのは
analysis effort
とMinimum confidence to report
です。
analysis effort: Default
Reporter Configurationタブ
Reported (visible) bug categories
の欄のBad pricticeなどのチェックを全部入れる
右側のMinimum confidence to report: Highにする
あとはそのまま
実行方法
そうすると下部の(Problems(マーカー))に出てくる。どれが出したかは
TypeにSpotBugsと書いてあるのでそれで判別できる
Excelに貼り付けたい場合はこれをCtrl+Aでコピーしてコピペすればよい
HTMLレポート化
1)pom.xmlのdependencyに以下を追加 <dependencies>
...
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>4.8.3</version>
</dependency>
</dependencies>
<dependencies>
...
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.12.1</version>
</dependency>
</dependencies>
<build>
<plugins>
...
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>4.3.0</version>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<configuration>
<effort>Default</effort>
<threshold>High</threshold>
<xmlOutput>true</xmlOutput>
</configuration>
</plugin>
</plugins>
</reporting>
ここにはその記載があるにもかかわらず。
あと公式サイトがeffortとthresholdに何がかけるのか書いてない気がしますのでそこがつらい。EclipseでMaven Buildの実行を追加する
mvn compile site
か
mvnw compile site
でいいのだが、大人の事情でSSL関連のエラー出るよーとかで、
いろいろ解決がめんどくさいのでEclipseからやる方法
(※制限された環境かだと素直にMavenをインストールしてコマンドラインからやったほうが楽ですが)
Maven buildの欄に新規追加
Name SpotBugs
Base directory: ${project_loc:[プロジェクト名]}
Goals: compile site
Profiles: pom.xml
プロジェクト名は置き換えてください。
だいぶかかるのでしばらく待つ
Spring Bootのプロジェクトなんだけどごっそり全部落とされてダウンロード地獄
しばらくたつと
target/site配下にspotbugs.htmlが出力される
※要リフレッシュPrimitive boxed just to call toString in ... [Of Concern(16), High confidence]
今回の場合は後者でいい...的な警告だった。
Bug descriptions — spotbugs 4.8.3 documentation参考サイト
SpotBugsの使い方とレポート化の手順
スポンサードリンク