0

いくつかのプラグインを含むEclipse機能を構築しています。プラグインの1つは、import packageステートメントを使用して、別のプラグインへの依存関係を宣言します。

もう1つのプラグインにはプラットフォーム固有のコードがあり、私が構築している別の機能に存在します。この機能には、プラットフォーム固有のコードを持つ2つのプラグインがあります。1つはos=win32 arch = x86用で、もう1つはos = win32 arch=x86_64用です。

どちらの機能もTychoを使用して構築されており、どちらも正常に使用できるp2リポジトリを備えています。

そこで、これらのリポジトリの両方を指す複合リポジトリを作成し、RCPアプリで[新しいソフトウェアのインストール...]コマンドを使用して、複合リポジトリをポイントし、最初に説明した機能をインストールします。

問題は、インストールが完了すると、プラットフォーム固有のコードを持つプラグインが正しくインストールされなかったことです。具体的には、x86システムのプラグインが64ビットマシンに表示されます。

4

2 に答える 2

2

feature.xmlで、プラットフォーム固有のコードを含むプラグインを選択し、プラットフォームフィルターを追加します。フィルタは右側で利用できます(プラグインを選択すると)。次のようなフィルターを選択できます。

  1. OS
  2. WS
  3. 言語
  4. 建築

機能が公開されると、p2は適切なフィルターを生成します。

于 2013-02-07T05:04:42.003 に答える
0

私は答えを見つけました。

質問で言及した最初の機能で、feature.xml ファイルの隣に p2.inf ファイルが必要でした。

その p2.inf ファイルには、次のテキストが必要でした...

requires.1.namespace=org.eclipse.equinox.p2.iu
requires.1.name=com.myplatform.specfic.bundle.win32.x86   
requires.1.filter=(&(osgi.os=win32) (osgi.arch=x86))

requires.1.namespace=org.eclipse.equinox.p2.iu
requires.1.name=com.myplatform.specfic.bundle.win32.x86_64
requires.1.filter=(&(osgi.os=win32) (osgi.arch=x86_64))

このファイルを build.properties にも追加して、展開された機能に含まれていることを確認しました

次に、p2 リポジトリを展開して RCP アプリケーションにインストールすると、正しいプラグインが 64 ビット マシンに配置されました。

更新:ここで間違っていました。これは正解ではありません。一部のマシンには、正しくないプラグインがまだインストールされています。

于 2013-01-23T14:26:48.633 に答える