忍者ブログ
雇われるだけの人生から目指せ独立、社会人2年目なゲーム脳SEのブログ。更新頻度=週2~3回。
[222]  [221]  [220]  [219]  [218]  [217]  [216]  [215]  [214]  [213]  [212
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

私がJavaを嫌いになった理由のひとつに、「ライブラリ管理が大変」であることがあげられます。たとえば、とある簡単なアプリケーションの中でJSONデータを扱いたくなったので、JSON-libをインストールすることにしましょう。
するとこれだけのdepandency(依存ライブラリ)が必要になります。
http://json-lib.sourceforge.net/
http://json-lib.sourceforge.net/dependencies.html
これを全部手で落として来い、と?あなたユーザを舐めてますね?

大規模なプロジェクトであればmaven2というプロジェクト&ライブラリ管理の決定版ツールがあるので、そちらに任せておけば全く問題が無いのですが、10クラス以内で収まるような軽量なプロジェクトのためにmavenの設定をしていたら、pom.xmlを書いている時間のほうが長くなってしまいそうです。要するに、ロクに使えません。

私としては、RubyのGemみたいに、
gem install json-lib 1.5
ってタイプするだけで依存ライブラリ含めてすべてのライブラリがダウンロードできるような仕組みが欲しいんです。ただのそれだけでよいのですが・・・とか思いながらいろいろと調べていた結果、
Raven
こんなものを発見しました!
なんとRuby Gem + RakeでJavaのプロジェクトの管理が出来るんだそうです。まさに欲しかったものはこれ。
早速インストールしてみました。

問題は、私Ruby初めてなんです。putsしかコマンド分かりません。
まぁスクリプト言語なんて何とかなるでしょ!
RubyGems の使い方 - WebOS Goodies

インストールしたら、まずはGemをプロキシの裏から通せるようにします。
プロキシ越しにGEM - 初心者Ruby頑張る。
要するに環境変数http_proxyを作るだけです。環境変数を使わなくちゃいけないのが少々気持ち悪いですが(同様の理由でJAVA_HOMEもあまり好きではありません)我慢。

あとはraven installコマンドを使うだけです。
raven install --proxy http://this.is.proxy.com:1111 commons-lang
これでcommons-langの最新バージョンが落ちてくるはずなのですが・・・なぜかプロキシのURLを認識してくれません。
ravenスクリプトの内部を覗いて調査してみましょう。
gem contents raven
これでインストールされているravenのコンポーネントが全部見れますから、あとはスクリプトの中をテキストエディタで覗くだけです。スクリプト言語の魅力はこのデバッグ性のよさというか、改変し放題なところですね。問題解決が簡単です。

ほどなくしてraven.rbの130行目が怪しいことに気づきました。
def self.parse_proxy(purl)  
  if (purl.length > 0)  
    match = purl.match('http://(.*):(.*)@([^/]*):([0-9]*)')  
    match = match.to_a  
    match.shift  
    puts "Using proxy #{match[2]} and port #{match[3]}"  
    [match[2], match[3].length == 
0 ? 80 : Integer(match[3]), match[0], match[1]]   else     nil   end end
どうやらプロキシを指定するURLが、正規表現にマッチしていなかったみたいです。
raven install --proxy http://u:p@proxy.com:1111 commons-lang
こんどはうまくいきました!無事にcommons-langの2.2がダウンロードされました!
WS000162.JPG

・・・て、あれ?2.2?
今の最新は2.3だろ?
嫌な予感がします。
raven install --proxy http://u:p@proxy.com:1111 commons-lang:2.3
raven: 2.3なんてねーよwwww

raven install --proxy http://u:p@proxy.com:1111 ezmorph
raven: ezmorph?何それ食えるの?

raven install --proxy http://u:p@proxy.com:1111 JSON-lib
raven: JSON-lib?何それ食えるの?
だめだこいつ・・・はやくなんとかしないと・・・
要するに、去年かおととしぐらいからravenのリポジトリ情報が最新化されていないみたいなんです。
おかげさまで新しいライブラリが全く使えません。
しかもこのravenマイナーなプロジェクトですから、ほかにリポジトリ情報がある場所もわからず・・・


と言うわけで結論。Ravenはいいシステムなんですが、メンテされてないです。使えません・・・

今度は
Apache Ivy, the agile dependency manager 
こんなのを試してみようと思います。
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
05 2017/06 07
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
ブログ内検索
最新コメント
[11/13 DSLR-A850]
[08/29 逆援助交際]
[08/23 クンニ]
[08/22 熟女]
[08/19 痴漢]
はてなブックマーク
プロフィール
HN:
akisute
性別:
男性
職業:
システムエンジニア
趣味:
ゲーム・東方・ニコ動。あと散歩。
バーコード
推奨環境

横幅900px以上、Firefox 3, Safari 3, Opera 9.5, Chrome 0.2以上。IE7ギリギリ対応。IE6未対応。

忍者ブログ [PR]