mvnhackとmvncrawlerをCodeReposにコミットした話。

僕は、maven2のリモートリポジトリから、jarをゲトしたいだけなのです。
依存してるライブラリも一緒にゲトしてくれるとグー。
そう、別にそれ以外の機能は、一切合切必要ないのです。
面倒だし、DTDが無く、自前のpullparserを使って腕力でパースしてるpom.xmlなんぞ書きたくないのです。

mvnhackの話。

んで、id:t_yanoが作ったmvnbeansは、正直スゲェとオモタ。
でも、明らかに依存ライブラリがおおすぐる。


後、僕はツール作る方向に興味が向きやすいので、依存ライブラリが多いのはちょと嫌なのです。
ツールから、結構好き勝手に処理構造をプラグイン出来る様なAPI構成になってて欲しいなぁ、ポワワ。
と言うワケで、自分で作りますた。


依存ライブラリは、JREのみ。
リモートリポジトリからjarをゲトするだけのライブラリ。
勿論、ローカルリポジトリに、格納されているjarは、
リモートリポジトリへ取りにいかずに、ローカルリポジトリを使う。
ゲトしようとしたjarが、何か他のjarに依存しているなら、そいつもまとめて取ってくる。


簡単に動作を確認する為と、ツールから使う時のサンプルコードとする為に、
コマンドラインから実行できる様にしてあるます。


あくまでもmaven2の処理をエミュレートしているだけなので、
上手く処理出来ないケースは、多分あって
稀にちゃんと処理出来ないpom.xmlがあるかもしれないけど、
それはそれって事で1つお願いしるます。
まぁ、少なくとも、僕が興味を持って触った事のあるライブラリは一通り試してみたけど、
大丈夫だったので、多分、きっと大丈夫でしょう…とか。


CodeReposに公開したので、見てやって下さいナ。

mvncrawlerの話。

mvnhackは、groupIdとartifactIdとversionが明確に分らないと、jarをゲト出来ないのです。
まぁ、groupIdが無いと、artifactIdと同じと見なしてゲトしに行ってみるのだけどもネ。


で、mavenリポジトリを曖昧かつざっくばらんに検索してぇなぁ…とか、思う訳。
そうすると、筆頭に来るのは、

とか。
でもさ、こいつWebブラウザ使わないと検索デキネェし、人気のサイトなのか知らないけど、スゲェ重い。
テキトーなHTTPリクエスト投げたら、
pom.xmlに相当する様な情報だけ返してくれるAPIあんのかな…
僕が知らないだけで…


んで、次点に来るのは、

これは、eclipseIntelliJ IDEAのプラグインから検索できたりして、
イカす。でも、今はメンテされてないらしくて、
mavenリポジトリしか検索出来ないのだよね…超残念。


と言うワケで、自分用のを作ろうかな…と思って、
さっきのmvnhackを使って、セントラルリポジトリに、
デプロイされているpom.xmlの中身を抜きつつ、
ライブラリのgroupIdとartifactIdとversionと、依存関係だけを、
ローカルのRDBに格納するツールを作ってみた。


いや、当初の目的である、
リポジトリ検索エンジン作るトコロまで、到達してないのでありますよ。
理由は特に無いのだけどもさ…。
早く神様降りて来ないかナァ…ポワワ…とか、誰か続きを作ってくれないかなぁ…ポワワ…とかね。


ちなみに、実行すると、物凄いデカいデータファイルが出来るけど、
これは、H2がヒドくて、SQLにexportしてから、データベースをDROPして、
もう一度importするだけで、データファイルのサイズが、1/100以下になるます。
僕の自宅で使ってるX41Tでクローリングすると、大体3〜4時間で、処理が終る感じ。
まぁ、興味があったり、Webアプリ作ってくれるって方は、見てやってクダサイナ。