2012年12月22日土曜日

Java系ライブラリのsources.jarを作る

忘れずにメモ。

よく、apache系のライブラリを使うのですが、ソースを(Eclipse上で)見たいことがよくあり、Eclipseでライブラリのパスを通すときに、ソースをパッケージングしたファイルへのパスも設定しておくと、より容易に見やすくなるんですよ。

今回はlog4jを使うので、log4jのソースをパッケージングしたファイルを作ることに。

・前提
 ・Apache Antがコマンドライン上で使えるようになっていること

1. log4j-x.y.z.zipをここからダウンロード(x.y.zはバージョン)
2. zipファイルを解凍
3. ターミナルあるいはコマンドプロンプトで、解凍してできたフォルダに移動
4. 以下のコマンドを実行
 > ant -f build.xml jar
5. すると、dist/libフォルダが作られ、その中にバイナリのjarとソースのjarが作られる。

※バイナリのjarは既に解凍してできたフォルダの直下にあるから別に不要なんだけど

ついでにEclipseでの設定もメモしておく。

1. log4jを使うプロジェクトを用意
 今回はLog4jSampleプロジェクトを作成
2. log4j-x.y.z.jarとlog4j-x.y.z-sources.jarをインポートする。
 僕の個人的なやり方だけど、libフォルダを作って、その中にjarを置いた。インポートはEclipseのインポート機能を使ってもいいし、単純にコピペでやってもいい
3. プロジェクト右クリック→プロパティ→「Javaのビルド・パス」をクリック→「ライブラリー」タブをクリック→「追加ボタン」をクリック→log4j-x.y.z.jarを選択。選択するとダイアログが以下のような感じになる。
4. 追加されたlog4j-x.y.z.jarをクリックすると、オプションメニューが展開されるので、そのうちの「ソース添付」をクリックし、右の「編集」をクリック。log4j-x.y.z-sources.jarを選択する。そうすると、ダイアログが以下のようになる。

設定関係はこれでおk。あとはJavaコードを書けばよい。試しにlog4jの実装を見てみる。やり方はいろいろあるが、オーソドックスなのは、「パッケージ・エクスプローラ」に出ている「参照ライブラリー」をクリック→log4j-x.y.z.jarをクリックすると、クラス一覧が現れるので、そこから見たいクラスをダブルクリックすればソースが見れるようになる。ちなみに、「ソース添付」の設定がしていないとくりっくしても「該当ソースが見つかりません」みたいなメッセージが出てたと思う。


他には、自分がlog4jのinfoメソッドを書いたときに「infoメソッドの実装を見てみたい」と思ったら、ctrlキーを押しながらマウスポインタをメソッドに持っていってそのままクリックするか、表示されたメニューの「宣言を開く」をクリックする。

すると、infoメソッドの宣言元が表示される。


※「後になって言うなよ」な話
今回sources.jarを作るにあたり、ダウンロードしzipファイルの中にたまたまビルドスクリプトがあり、sources.jarを作るための処理があったからいいものの、他のライブラリも同様にできるとは限らない。sources.jarも公開されているのでそれをダウンロードするだけでおkな場合もあるし、作るための処理を自作しないといけないこともあると思う。

あと、別にソースをパッケージングする必要は実は無い。「ソース添付」のところでソースのフォルダを選択してもいいので。ただ、パッケージングしたほうが仲間内で開発するときに渡しやすいかなっていうくらい。

0 件のコメント:

コメントを投稿