3

いくつかのプラグインがあり、それらを提供するための素敵な更新サイトを作成したいと考えています。それらの中には、コア機能のみを含むもの (何もしない、core-plugin と呼びましょう) もあれば、エンドユーザーにいくつかの機能を提供するもの (コアプラグインに依存しているため、useme-plugin と呼びましょう) もあります。これで、すべての useme-plugin の機能を作成しました。対応するプラグインを含め、すべての依存関係 (core-plugins) を設定しました。これらの機能は、更新サイトに追加しました。今インストールしようとすると、コアプラグインが見つからないという苦情が表示されます。

    Cannot complete the install because one or more required items could not be found.
  Software being installed: Useme-plugin 1.1.0.201108090928 (de.xxx.feature.feature.group 1.1.0.201108090928)
  Missing requirement: Useme-plugin 1.1.0.201108090928 (de.xxx.feature.feature.group 1.1.0.201108090928) requires 'de.xxx.coreplugin 1.1.0' but it could not be found

私は何か悪いことをしましたか?すべての useme-feature に core-plugins を含めたくありません... または、そうする必要がありますか? 誰かがそれを正しく構造化するのを手伝ってくれますか?

4

1 に答える 1

3

機能は、ターゲット システムに 1 つのユニットとしてインストールする必要がある関連するプラグインをグループ化するために用意されています。したがって、通常、自明ではないアプリケーション用の多くの機能があります。

  • アプリケーションの基本機能を備えた主な機能
  • オプションのアドイン機能のための多数の機能
  • コア機能を備えた多数の機能
  • サードパーティ製プラグインの主要なコレクションを備えた多数の機能

2 つ以上の機能に同じプラグインを含めることができます。プラグインは、ターゲット システム上の 1 つのインスタンスにのみ存在します。特殊なケースでは、同じプラグインの複数の異なるバージョンがターゲット システムに存在することさえあります。異なる機能が同じプラグインの異なるバージョンに依存するその他のケースでは、開発者が解決しなければならない競合があります。

機能には、他の機能を含めたり依存したりすることもできます。この場合、依存する機能もターゲット システムにインストールする必要があります。したがって、アプリケーションの主な機能は、必要なコア機能とサード パーティの機能に依存し、サード パーティの機能も同様です。依存する機能のインストールは通常、p2 で自動的に行われます。p2 は、インストールまたは更新時に必要なプラグインのみをダウンロードするほどスマートです...

実行時に、特定のプラグインがターゲット システムでどのように終了したかは問題ではありません。これにより、多くのオプションが得られます。

プラグインを機能に分割するときは、ターゲット システムで必要なアプリケーションと必要なアドインを第一に考慮する必要があります。複数のアプリケーションまたはアドインがあり、それぞれがコア プラグインまたは 3 番目のプラグインのサブセットを使用している場合にのみ、非常に困難になります。

単一のアプリケーションを持っているか複数のアプリケーションを持っているかを書いていないので、単一のアプリケーションを持っていると仮定します - プラグインの共通セットを共有する複数のアプリケーションにアイデアを拡張するのはかなり簡単です。

この問題は、いくつかの異なる方法で解決できます。絶対に最も簡単な解決策は、単一のアプリケーション機能を作成し、UI、コア、およびサードパーティのプラグインをこれに含めることです-多かれ少なかれ、あなたが提案する. 製品が 1 つしかなく、コア プラグインを他のセットアップで使用する予定がない場合、これは問題なく機能します。

多くの場合、機能をコア機能と UI 機能に分割します。ほとんどの場合、UI 機能がさまざまな機能に分割され、エンドユーザーが必要な機能のみをインストールできるようになっているためです。

したがって、あなたの場合、コア機能とアプリケーション機能の 2 つの機能を使用することもできます。これは、コア機能に依存します。

または、あなたが持つことができます

  • コア機能
  • UI 機能 - コア機能に依存
  • RCP 機能 (Eclipse から)
  • 他のすべての機能に依存する主要なアプリケーション機能

これを行う方法はたくさんあります...

于 2011-08-09T14:18:19.137 に答える