2

もう一度それが起こりました...私は、相互依存関係を持ついくつかのプレーンなEclipse Javaプロジェクトで構成され、すべてプロジェクトビルドパスを介して管理される新しいプロジェクトに参加しました。これは少し混乱していると思います。そして、構成を実行することになると、あなたは地獄に入るだけです。

以前は、プレーンJavaプロジェクトではなく、プラグインプロジェクトを作成することに固執していました。たとえ、これらのプロジェクトをosgiバンドルとして実行するつもりがなかったとしてもです。プラグインプロジェクトでは、依存関係の管理がはるかに簡単であることがわかりました。他の人も同じ道を進んでいますか?このアプローチに反対するものはありますか?

4

6 に答える 6

2

org.aspectjドキュメントの再構築を読んだ場合、そのプロジェクトは正確に次のことを行いました。

  • すべての依存関係は、クラスパス(ライブラリjar用)と「必須」バンドルを指定するOSGiバンドルマニフェストファイルで表現されます。展開環境(またはなど)
    で期待または期待されるライブラリは、ビルドおよびテストの目的で含める必要がありますが、出荷製品からは除外する必要があります。これらは、「オプションの」必須バンドルまたは必須パッケージとして指定できます。XMLJRocket

  • 最初のバイナリアセンブリは通常のバンドルアセンブリを介して機能し、バンドル出力には、必要なバンドルフラグメントからのバイナリが含まれます(オプションのバンドルからは含まれません)。

この利点には、OSGiのバージョンの側面も含まれます。これにより、依存関係の予想される最小バージョンと最大バージョンを指定できます。

于 2009-09-07T18:56:18.980 に答える
2

Eclipseでは、プロジェクトまたはライブラリ参照を追加する従来の方法よりも、OSGiを使用してプロジェクトの依存関係を管理する方が簡単であることに同意します。

ただし、開発時に依存関係管理のOSGiウェイを推進する場合、開発者はOSGiを学習する必要があり、クラスの可視性の問題が発生するため、コストがかかります。

依存関係を使用していますか、Require-Bundleそれとも管理していますか?Import-PackageOSGiでの推奨される選択ではありませRequire-Bundleんが、開発時の依存関係管理の観点からは、より適切な場合があります。

Mavenプラグインのようなものを使用していない限り、Eclipseには、Eclipseの内部と外部でコンパイル/実行する完全に異なる方法の厄介な分割があります-2つの並列コンパイル/実行システムを維持するという苦痛があります。

于 2009-09-09T08:59:20.123 に答える
1

OSGiコンテナー内で実行していなくても、依存関係の管理にOSGiを使用するというあなたの方法論は、最終的にはよりモジュール化されたコードにつながるため、非常に健全だと思います。モジュラーコードはリファクタリングが簡単で、複数の開発者に配布するのも簡単です。OSGiクラスを拡張する必要さえないので、追加の依存関係を作成する必要はありません。

一方、外部依存関係管理を使用するというKen Liuの提案には、Mavenのようなものが多くの依存関係と管理を処理するため、利点もあります。

2つを組み合わせると、両方の長所を活用できます。OSGiは、 Bndm2eclipseなどの追加ライブラリを使用してMavenと一緒に動作させることができます。

于 2009-09-07T19:13:24.357 に答える
0

興味深いアプローチのように聞こえますが、個人的には、ビルドをIDEに結び付けるのではなく、AntやMavenなどの外部ビルドツールを使用してビルドの依存関係を管理するのが最善だと思います。mavenとm2eclipseプラグインを使用する場合、他のプロジェクトもワークスペースにあると、MavenPOMをロードするときにEclipseプロジェクトの依存関係が自動的に設定されます。

残念ながら、チームが現在アドホックな依存関係管理を使用している場合、Mavenにジャンプする努力をしたいと思う可能性はほとんどありません。それからまた、たぶん彼らは努力を先導するリーダーを必要としているだけかもしれません。

于 2009-09-07T18:54:18.857 に答える
0

プラグインプロジェクトを個人的に使用するのではなく、Ant、Mavenなどのビルドツールを使用します。

ビルドシステムが統合されていない場合、それは会社がソフトウェア開発についてあまり理解していないことを意味します。

私はビルドシステムを導入するすべての責任を負わないでしょう、おそらく余分な時間。移行したくない場合は、できるだけ早く別の仕事を探し始めることをお勧めします。

于 2009-09-07T19:13:10.193 に答える
0

ここには2つの別々の問題があります。

  1. 複数のプロジェクトを設定するにはどうすればよいですか?
  2. どのビルドシステムで複数のプロジェクトをビルドできますか

2つは関連している必要はありません。したがって、たとえば、プロジェクトをビルドするためにMavenを選択し、プラグインプロジェクトを使用して編集を容易にすることができます。ほとんどのものは、Eclipseビルドシステムの手に負えません。一度動作すると、かなり安定しますが、何もない状態から動作するようになるには、(a)運、および/または(b)黒魔術が必要です。

最終的には、管理しやすいと感じる質問が出てきます。両方のタイプの依存関係、または単一の依存関係。単一のものが必要な場合は、m2eclipse(Maven POMからプロジェクトの依存関係を生成する)またはpax-construct(Maven POMからマニフェストを生成できる)のいずれかに時間を費やす必要があります。それか、2つの依存関係管理システムを使用します。

于 2009-09-08T21:32:37.810 に答える