2

機能があり、その ID を変更したいと考えています。ただし、これにより既存のインストールを更新できなくなります。その理由は次のとおりです。

  1. バージョン 1.0 の機能 F1 がバージョン 1.0 のプラグイン A で構成されているとします。
  2. ここで、バージョン 1.1 でプラグイン A を使用する機能 F2 をバージョン 1.1 で使用したいと考えています。
  3. F2 をインストールすると、バージョン 1.0 のプラグイン A を必要とする機能 F1 が既にあるというエラーが表示されます。したがって、プラグイン A 1.1 をインストールすると、その依存関係が無効になります。

F2 が F1 を置き換えることを示す方法を探しています。どうやってやるの?

4

1 に答える 1

3

私はあなたがp2を使用していると仮定しています。

p2メタデータを使用してフィーチャーをエクスポート/ビルドすると、結果の content.xml (.jar) には次のような内容が含まれます。

<unit id='f.feature.group' version='1.0.0' singleton='false'>
  <update id='f.feature.group' range='[0.0.0,1.0.0)' severity='0'/>
  ...
</unit>

この<update>要素は、この機能が更新する機能の以前のバージョンを指定します。既存のメタデータ生成ツールは、上記のようにこれを設定します。

プラグイン「A 1.0.0」を含む機能「f」を作成し、メタデータとともにエクスポートして、その機能をEclipseにインストールしました。次に、プラグイン「A 2.0.0」を含む機能「g」を作成しました。これを同じリポジトリに再度エクスポートしました。次に、content.xml ファイルを手動で編集し、次のように変更しました。

<unit id='g.feature.group' version='1.0.0.200907061120' singleton='false'>
  <update id='g.feature.group' range='[0.0.0,1.0.0.200907061120)' severity='0'/>

<unit id='g.feature.group' version='1.0.0.200907061120' singleton='false'>
  <update id='f.feature.group' range='[0.0.0,1.0.0.200907061120)' severity='0'/>

次に、日食で「更新の確認」を行ったところ、以前の「f」への更新として「g」が見つかり、アップグレードが行われました。(変更を取得するために、リポジトリを強制的にリロードする必要がある場合があります。使用可能なソフトウェア サイトの設定ページで「テスト接続」を実行すると、これが実行されます)。

残念ながら、現在、エクスポート/ビルド プロセスで更新要素を変更する方法はなく、手動で編集する必要があります。私はこのバグを提起しました。

于 2009-07-06T15:52:24.077 に答える