eclipathプラグインの使いどころ

先日紹介した Maveneclipath プラグインですが、必要性がいまいち見えないという声もあるかもしれません。(まぁ、もともとニッチなニーズなのですが)

通常、Maveneclipse を連携させる場合、m2eclipse か Q4E あたりがメジャーだと思います。残念ながらQ4Eは試していないのですが、m2eclipseを使えばpom.xmlに記述された依存ライブラリをeclipseのクラスパスコンテナにしてくれるので、eclipsemavenの連携をうまく実現できるでしょう。

当たり前ですが、この場合eclipseにm2eclipseプラグインを導入するのが大前提になります。開発現場のプロジェクトで各開発者の開発環境を統一できる場合は、もちろん問題ありません。

ただし、以下のようなケースだと問題になります。

オープンソースのサンプルなどをeclipseプロジェクトごと公開する場合

eclipse利用者の開発環境は様々なので、m2eclipseのようなプラグインが導入されているとは限りません。m2eclipse前提のeclipseプロジェクトをサンプルとして公開しても、m2eclipseを導入しない人にとっては、ライブラリ解決エラーの嵐で、それだけでサンプルを見る気がなくなります。

そもそも、mavenは使っていないけどソースコードをちょっと見てみたいという人にとって、m2eclipse前提のプロジェクトは障壁になってしまいます。

一方でOSS開発者としては、ライブラリ管理をうまく行うために積極的にmavenを使っていきたいという事情もあります。

プライベートリポジトリを利用している場合

開発プロジェクトでも、独自のライブラリをMavenプライベートリポジトリで管理しているような場合、プライベートリポジトリにアクセスできない環境へeclipseプロジェクトを持って行くと、m2eclipseが依存性を解決できなくなります。

eclipseプラグインを開発する場合

eclipseプラグインを開発していて、依存ライブラリをm2eclipseのクラスパスコンテナで管理していると、eclipse上のランタイム環境ではeclipseクラスローダがm2eclipseのクラスパスコンテナまで見に行ってくれずに正常動作しません。(これは昨年秋くらいに試していたことなので、うろ覚えですが・・・)

      • -

総じてeclipseプロジェクトの可搬性を考えると、依存ライブラリはeclipseプロジェクト配下に置いておいた方が問題が少ない、というのが現時点での私の考えです。そのためには、以下の3つをうまく同期してくれるツールが必要なのです。

  • pom.xml の依存ライブラリ定義
  • eclipseプロジェクト配下の実体(Jarファイル)
  • eclipseプロジェクトの.classpath

eclipathプラグインはこのような問題を解決するために作りました。

追記

id:jflute さんのご尽力で Mac、JDK5、Maven3での動作確認ができました!