JBoss Tattletaleを使って依存関係を調べよう
事前準備
以下からダウンロードします.
http://sourceforge.net/project/showfiles.php?group_id=22866&package_id=311046&release_id=662710
まだサイトは無いみたいですね.
概要
JBoss Tattletaleを使うと、プロジェクト内を静的に解析して、以下のような情報をレポートして出力します. ●自分のプロジェクトが依存しているjarファイルとそのバージョン ●必要なんだけど、欠けているクラス ●あるクラスが複数のjarファイルに含まれている場合、そのクラスごとにどこに含まれているか 使ってみた率直な感想.かなり便利. 特に途中からプロジェクトに投入されたりとか、チームで案件用フレームワークなんか作っていて、 たまにjarの依存関係など調べたいときとか、あとはそもそも成果物の一つとしてこの依存関係のレポートも 一緒に求めたりとか、用途は様々に使えます.というわけで使い方をまとめてみました.
使い方
使い方は簡単.jboss-tattletale.jarをダウンロードしてきて、
こんな感じで、java -jar jboss-tattletale.jar 調べたいプロジェクトのディレクトリ 出力先ディレクトリとするだけ.
java -Xmx512m -jar jboss-tattletale.jar /Users/shot/dev/workspace/t2 ./t2-report
解析結果
Dependencies
まずはDependenciesレポート.ここには対象にしたプロジェクトが依存しているjarファイルの一覧が出てくるです.
おおー、見やすい.各jarファイルごとに一覧になっていて、そのjarがさらに依存しているクラスやjarも きちんと出てきます.たとえば、commons-0.5.0-ga.jarはgeronimo-j2ee_1.4_spec-1.0.jar, junitのクラス, jxlのクラス, slf4j-api-1.4.2.jarに依存してます.
んではこの中から、その依存jarの詳細についてみていきます. slf4j-api-1.4.2.jarを見てみましょう. 上半分
下半分
各jarの詳細についてのレポートが表示されるます.以下の項目です. ●jarファイル名をあらわすName ●物理的な配置位置を表すLocations ●このjarが必要としているクラスをあらわすRequires ●このクラスが提供するクラスをあらわすProvidesが表示されます.
このレポートを読めば、あるjarに対して、何が提供されていて、何が必要なのかがすぐわかります.
![f:id:shot6:20090221132358p:image f:id:shot6:20090221132358p:image](https://cdn-ak.f.st-hatena.com/images/fotolife/s/shot6/20090221/20090221132358.png)
おおー、見やすい.各jarファイルごとに一覧になっていて、そのjarがさらに依存しているクラスやjarも きちんと出てきます.たとえば、commons-0.5.0-ga.jarはgeronimo-j2ee_1.4_spec-1.0.jar, junitのクラス, jxlのクラス, slf4j-api-1.4.2.jarに依存してます.
んではこの中から、その依存jarの詳細についてみていきます. slf4j-api-1.4.2.jarを見てみましょう. 上半分
![f:id:shot6:20090221132359p:image f:id:shot6:20090221132359p:image](https://cdn-ak.f.st-hatena.com/images/fotolife/s/shot6/20090221/20090221132359.png)
![f:id:shot6:20090221132400p:image f:id:shot6:20090221132400p:image](https://cdn-ak.f.st-hatena.com/images/fotolife/s/shot6/20090221/20090221132400.png)
各jarの詳細についてのレポートが表示されるます.以下の項目です. ●jarファイル名をあらわすName ●物理的な配置位置を表すLocations ●このjarが必要としているクラスをあらわすRequires ●このクラスが提供するクラスをあらわすProvidesが表示されます.
このレポートを読めば、あるjarに対して、何が提供されていて、何が必要なのかがすぐわかります.
Multiple Jar Files
Multiple Locations
Multiple Locationsは同一のjarが複数回クラスパスに含まれている場合に出るようです.
今回はなにも出なかったですが、これも異図しない場合がほとんどなので、このレポートを見れば一目瞭然です.
Jar Files
Jar Filesセクションで見ることが出来るのはこのプロジェクトが依存しているjarの一覧です.
最初のDependenciesのところで見せたものと同じように各jarごとにその詳細を見る事が出来ます.
さっと目をとおすだけでも、どれくらいのjarに依存しているのかがわかって、
全体を把握するのに役立ちます.
総括
使い方も簡単で、使いやすいです.
難点はまだベータなのでいくつかのプロジェクトでは上手くレポートが生成できない部分がありました.
あと、ヘルプもまだついていないので、色々な項目の意味とかオプションでこれも出したいよというのは
まだこれからなんだろうなあと思います.
でもこれらを差し引きしても使えそうなので、自分ではどんどん使っていきたいです.
でもこれらを差し引きしても使えそうなので、自分ではどんどん使っていきたいです.