pre{ white-space: pre; } .entry-content pre{ word-wrap: normal; }

ぶらコード

ぶらりオープンソースの旅

ぶらコード:maven:その2(Plexusその1)

Plexus周辺をぶらぶらしてみる。

前回は、

Plexus – Plexus Overview

どうやら、maven用に開発されたIoC(Inversion of Contorl)するライブラリのようだね。

という認識だったが、どうやらIoCするライブラリでもないようだ。

概要はこちら
Plexus – Plexus Overview

最初はIoCのライブラリだったけど、今はIoCの部分は「Eclipse Sisu」ってのに置き換わっていて、
別の方向を目指しているようだ。

google翻訳がかなりいい線いってたので、とりあえず貼っておく。

重要なお知らせ
Plexusプロジェクトは以前はIoC Plexus Containerに重点を置いていました。現在はEclipse Sisuに置き換えられており、Google Guice拡張機能として書き直されています。IoCの部分が廃止されたとしても、私たちは参照のためにIoC全体の内容を保持しました。

Plexusプロジェクトは、ソフトウェアプロジェクトを作成して実行するための完全なソフトウェアスタックを提供します。Plexusコンテナに基づいて、アプリケーションはコンポーネント指向プログラミングを利用して、モジュール化された再利用可能なコンポーネントを構築し、容易に組み立てて再利用することができます。

Plexusは、Spring Frameworkのような他のIoC(Inversion-of-Control)や依存性注入フレームワークと似ていますが、以下のような多くの機能をサポートする本格的なコンテナです。

コンポーネントのライフサイクル
コンポーネントインスタンス化の戦略
・ネストされたコンテナ
コンポーネント構成
・自動配線
コンポーネントの依存関係
・コンストラクタインジェクション、セッターインジェクション、およびプライベートフィールドインジェクションを含むさまざまな依存性注入技術。

Plexusと他の製品との違いの詳細については、機能の比較ページを参照してください。

プレクサスプロジェクトは、このような突堤、ベロシティ、Hibernateは、国際化、およびなどの一般的なタスクとツールキットのために事前に構築されたコンポーネントの数を提供し、より多くの。しかし、PlexusはSpring、Avalon、Pico Containerなどの他のIoCフレームワーク用に書かれた既存のコンポーネントをそのまま使用することができます。また、既存のコードをPlexus Container内で再利用することもできます。

Plexusには、アプリケーションを実行できるアプリケーションサーバーが付属しているため、必要に応じてサービスの実行などの一般的な機能を備えたスタンドアロンの実行可能な配布を簡単に作成できます。ただし、Plexusアプリケーションは、Java EEアプリケーションやWebアプリケーションを含む既存のアプリケーションにコンテナを埋め込むことで、どのような環境でも実行できます。

PlexusのコンポーネントJavaで記述する必要はなく、JythonJRuby、Beanshell、Groovyのコンポーネントファクトリが存在します。

Plexusコンテナは現在、いくつかのアプリケーションとフレームワーク、特にMaven 2.0とWebwork 2.2(Struts Action Framework 2.0)で使用されています。

Plexus に関するよくある質問への回答はFAQをご覧ください。

どうやら、ソフトウェア開発のフレームワークってことみたいだね。
でもやっぱりマイナーだよね。ほとんど聞いたことない。

と思ってたら、FAQに以下のような自虐的とも取れる記述がw
Plexus – Frequently Asked Questions

なぜPlexusは普及していないのですか?
Plexusは何年も前から存在していましたが、スタンドアロン製品として広く普及したことはありません。開発の焦点は、Maven 2.0のプラグインモデルなどの高度なアプリケーションアーキテクチャのニーズを容易にすることができるコンテナを提供することでした。

Maven 2.0の安定版リリースでは、Maven 2.0プラグインの作成に使用されるため、スタンドアロン製品としてのPlexusが注目を集めており、一般的なアプリケーション開発に提供できるメリットが見られます。

さらに、Plexusはアプリケーションコンテナを必要とする人にとって魅力的になってきましたが、Springのような一般的なフレームワークには必要な機能がありません。

今後のPlexus 1.0のリリース、およびその高度な機能と他のフレームワークとの統合により、Plexusは今後すべてのアプリケーション開発者にとって人気の高い選択肢になることを願っています。

まあ、そういうことのようです。
でも、少なくともmavenという偉大なアプリケーションを影で支えているわけですから、ぶらついてみる価値はあるでしょう。
その他、Plexusサイトの情報を一通り読んでみましたが、イマイチピンと来ませぬ。
なので、実際にmavenで使っているとこを読んでみて、感覚を掴んでいきたいと思います。
意外と良さそうであれば、今後自分でも使うかもしれないしねぇ。