はじめに
エンジニアだったりプロジェクトマネージャーだったりがJavaプロジェクトに配属されて大変なことの一つにクソデカソースコードを読むことがあると思います。
特に依存が蜘蛛の巣のように張り巡らされているpomファイルを見たときには目薬が必須ですね。親POM行ったり来たりなんで競合が起きているのかTreeコマンド打ったり...
もちろん最近ではIDEでいろいろサポートもありますが、いかんせん使いづらいことが多いので自分で使いやすいツールを作ろうと思いました。
できること
- dependency 一覧の確認
- Maven Central から dependency を検索して追加
- 利用可能バージョンの確認
- 更新前 diff の確認
- dependency tree の表示
- 同バージョンdependencyの利用(Duplicates) / 異バージョンdependencyの利用(Conflicts) の確認
- 親POMで管理されている依存の確認
- 親管理 dependency の誤更新防止
使い方
プラグインは Maven Central に公開しています。
https://mvnrepository.com/artifact/io.github.ikeponias/build-manager-maven-plugin/0.2.1
管理したい Maven プロジェクトの pom.xml に下記を追加します。
記事執筆時の最新バージョンは v0.2.1 です。
<plugin>
<groupId>io.github.ikeponias</groupId>
<artifactId>build-manager-maven-plugin</artifactId>
<version>${version}</version>
</plugin>
直下で次のコマンドを実行します。
mvn build-manager:run -Dopen
ポート指定する場合は↓
mvn build-manager:run -Dport=8081 -Dopen
初期画面説明
左ペインには Maven module ごとの dependency 一覧が表示されます。
Search dependencies から絞り込めます。
親プロジェクト、子プロジェクトはツリー構造になっていて、module 名を押すと折りたためます。
後述する Conflict 対象の dependency は背景が黄色くなります。
Delete を押すとその依存は削除されます。
右には以下が表示されます。
- Duplicates
- 同アーティファクトで同バージョンで重複する dependency
- Conflicts
- 同アーティファクトで異バージョンで重複する dependency
Add Dependency
Maven Central から dependency を検索できます。
検索結果を選び、version と scope を指定して Apply Add を押すと、pom.xml に dependency が追加されます。
ただしこの時追加できるのはプラグインがインストールされたプロジェクトになります。
今後追加するプロジェクトを指定できるようにする予定...
dependency クリック後画面説明
- 選択した dependency の詳細
- Versions
- 更新したいバージョンを指定できます。バージョンを指定して Preview を押すと Update Diff に更新差分が表示されます(まだ変更されません)
- Tree
- dependency の依存を tree 表示できます。Conflict 対象の場合は黄色文字で表示されます
- Update Diff
- 更新差分を表示します。Applyを押すと更新されます
親 POM で管理されている dependency
子 module の dependency が親 POM の dependencyManagement で管理されている場合、子側では更新・削除できないようにしています。
まとめ
親 POM と子 module の dependency 管理を確認したいときに結構便利かと思います。
自分でも使いながら今後改善をかけていきます。


