Jdepsを利用してJavaパッケージ間の循環依存を検出するツールdepDetectGuiの紹介

2019年5月29日

Javaパッケージ間の循環参照を検出するライブラリ depDetectにGUIを追加した。これをdepDetectGuiとした。

概要

Javaプログラムのいわゆるメトリックスを測定するツールとしては、JDependやMetrics等があるようだが、パッケージ間の循環依存を解消したり、例えば、コードの一部を切り離してライブラリ化する等の目的には向かないものである。

なぜなら、これらは複雑さを「測定」するだけで、どのパッケージ・クラスが問題になっているのか具体的に検出するには不適当だ。

また、JDKに付属するjdepsコマンドを使うことによって、複数の.classの間の具体的な依存関係を得ることはできるものの、巨大な.classの集合についてjdepsの出力を得たとしても、巨大なテキストファイルが得られるだけであり、人手で処理するには向いていない。

depDetectGuiは、jdepsの出力を可能な限りわかりやすく再構成し、どのような循環依存があるのか、具体的にどのクラスが循環依存に寄与しているのか等を表示する。

専用ページ

このソフトはオープンソースであるが、簡単のためにビルド済の実行形式jarを提供している。

depDetectGuiの専用ページはこちらにある。実行形式jarのダウンロード、簡単な使い方等はそちらで説明している。

以下のようなGUIで簡単に循環依存を検出することができる。内部ではJDK付属のjdepsを利用している。