「Rubyはまさに何千というgemを手に入れようとしています。」と数日前にCharles Nutter氏がTwitterでつぶやいた。何が起きたのか? 2008年に、Charles氏はRubyGemsとしてMavenの成果物をインストールするRubyGems プラグイン (とユーティリティ)のmaven_gem プロジェクトを始めた。このshellのセッションが示すように、どうやらCharles氏はMavenの成果物をRubyGemsとしてインストール可能にすることに成功した。これによって、本当に沢山のライブラリがJRubyプロジェクトで利用できるようになるだろう。
maven_gem Readmeファイルに書かれていることに反して、GemをインストールせずにただGemを作成することは可能なようだ。
同様の新しいプロジェクトはJavaGemsだ。FAQに書いてあるように、その目的はMavenと置き換えるのではなく、JVM言語にとってより簡単なMavenの代替品となることだ。
Mavenはすばらしいと思います。Mavenは、JavaGemsがおそらく持つであろう機能よりも沢山の機能がある、ものすごく強力なツールです。Mavenでうまくいっている場合は、Mavenを使い続けてください。問題なのは、一部の人たちが少しだけ機能を必要としていて、Mavenのすべての力は必要ありません。むしろ、もっと簡単なものがほしいのです。JavaGemsは、このギャップを埋めることを目的とします。Mavenを置き換えようとしているのではなく、補完しようとしています。
JavaGemsは、本来、Gemcutter インスタンスであり、現在は、JRuby、Clojure、そして、いろいろなScalaライブラリを提供する。依存関係の管理にはRubyGems と Bundler を使う。JavaGemsの動きを知るには、このブログにClojureとCompojure (Clojureウェブフレームワーク) のインストール方法と、簡単な数ステップで動く「Hello World」の例が示されている。
JRubyに関する他のニュースは、JRubyがJavaと統合していることで、Javaインターフェースを実装し、Javaクラスを拡張するクラスがすぐに生成できることだ。これは、JRuby exampleで紹介されている。
Clojure と JRubyとの相互作用に関するさらなる情報は、InfoQのJRuby and Clojure - A Good Match? (JRubyとClojureは好相性?) を参照しよう。