一部のプロジェクトがEclipseプラグイン/OSGIバンドルプロジェクト(RCPアプリケーション)であり、他のプロジェクトが単なる古いJavaプロジェクト(Webサービスモジュール)である混合プロジェクトタイプ間のプロジェクト間依存関係を処理するためのベストプラクティスを探しています。Eclipseプラグインの中にはJavaプロジェクトに依存しているものはほとんどありません。
私の問題は、少なくとも私が見た限りでは、EclipsePDE環境でそのような依存関係をきれいに表現する方法がないということです。プラグインプロジェクトを他のプラグインプロジェクト(Import-Package
またはRequire-Bundle
マニフェストヘッダー経由)に依存させることはできますが、プレーンJavaプロジェクトに依存させることはできません。
プロジェクトにワークスペース内の別のプロジェクトからのjarへの依存関係を宣言させることができるようですが、これらのjarファイルはエクスポート構成でも起動構成でも取得されません(ただし、Javaコード編集ではライブラリは問題なく表示されます)。
「Javaプロジェクト」は、J2EEコンテナ(現時点ではJBoss 4.2.2)にデプロイされるサービスを構築するために使用され、場合によっては複数のjarを生成します。1つはJBoss earにデプロイするためのもので、もう1つはクライアントコードで使用するためのものです( RCPアプリケーション)。
今のところこの問題を「解決」した方法は、さらに2つの外部ツールランチャー構成があることです。1つはすべてのjarをビルドするためのもので、もう1つはこれらのjarをプラグインプロジェクトにコピーするためのものです。これは(一種の)機能しますが、「ビルド全体」と「jarのコピー」ターゲットは、非常に大きなビルドステップを必要とし、Eclipseのインクリメンタルビルド機能全体をバイパスし、プロジェクトを参照するだけでなく、jarをコピーすることで、依存関係情報を分離します。そして、それがキャンディーであるかのように開発時間を浪費する非常に大規模なワークスペースの更新を要求します。
私が望んでいるのは、プロジェクト間の依存関係を管理し、必要な場合にのみ増分再構築を要求し、RCPアプリケーションプラグインのサービスライブラリからクライアントコードを使用できる、はるかに「自然な」ワークスペースセットアップです。必要なすべての必要なクラスを使用してRCPアプリケーションを起動します。
だから私は私のケーキを持ってそれも食べることができます;)
ノート
明確にするために、これはEclipse PDE構成に関するものであるため、現時点では依存関係管理やモジュール管理に関するものではありません。
私は[Maven]、[Ivy]、[Buckminster]などの製品をよく知っており、まったく異なる問題を解決します(ワークスペース構成の問題を解決すると、これらの製品は実際にワークスペースの具体化と構築に役立ちます。製品)