15

Eclipse のターゲット定義に関して問題があります。ターゲット プラットフォーム定義にあるプラグイン バージョン 1.0.0 を使用したいのですが、ワークスペースにはバージョン 1.0.2 のプラグイン プロジェクトがあります。私のターゲット定義の他のすべてのプラグインでは、すべてが期待どおりに機能します (何かが欠落している場合にエラーがフラグされるため、これが表示されます) が、この特定の Eclipse は私のプロジェクトで使用できません。プラグインのバージョンは 1.0.2 のみです。プラグインはシングルトンとして設定されていません。

これはなぜですか? また、この問題を解決するにはどうすればよいですか?


間違ったバージョンを含むプロジェクトを閉じると、正しいバージョンにアクセスできることがわかりましたが、これは厄介です。別の方法はありますか?


実際にはEclipse固有の問題ではないようです.maven/tychoを介してコマンドラインでビルドするときにも失敗します. 具体的には、ターゲット プラットフォームは Juno リリースです。機能の一部でありながら、他のバンドルで利用できないプラグインはありますか? プラグインがあることは知っていますが、tycho も Eclipse もプラグインを利用できるようにしたくありません。

コンパイル時に失敗すると言うべきかもしれません。


私が言ったように、この問題には回避策がありますが、私はまだこの問題に対する「良い」解決策を望んでいます。https://github.com/kutschkem/Jayesでターゲット定義と一緒にプロジェクトをチェックアウトできます。

最初にこのプロジェクトをチェックアウトしてビルドする必要がある場合もあります: git clone http://git.eclipse.org/gitroot/recommenders/org.eclipse.recommenders.git

ターゲット プラットフォームを設定したら、Jayes 1.0.2 (ワークスペースにある) の代わりに Jayes 1.0.0 (ターゲット プラットフォームにある) でビルドしてみてください。Maven でビルドすることもできますが、うまくいきません。

既知の回避策:

  1. Jayes 1.0.2 プロジェクトを閉じます。次に、Eclipse で Jayes 1.0.0 を使用できます
  2. (OSGi) アプリケーションを実行するために、ロードするバンドルを選択できます。そこで手動でバージョン 1.0.0 を選択できます
  3. 製品定義を使用して、回避策 2 と同じランタイム構成にアクセスできます。

誰かが maven の回避策を見つけた場合は、喜んでお知らせします。

4

2 に答える 2

7

プラグインをシングルトンに設定している可能性があるため、特定の ID を持つバンドルのインスタンスは 1 つだけになります。これを変更するには、MANIFEST.MF で「singleton:=true」を削除します。

Bundle-SymbolicName: org.eclipse.xxx; singleton:=true

または、実行開始時に実行構成から 1.0.2 バージョンのプラグインを削除することもできます。[実行] --> [実行構成] をクリックして実行構成ダイアログを開き、[プラグイン] タブに切り替えます。ここで、使用するプラグインを選択できます。

于 2012-12-12T07:54:49.580 に答える
4

すでに次のことを試していると思いますが、ターゲット プラットフォームのリロードが役立つ場合があります。また、あなたの feature.xml ファイルは、そのプラグインのバージョンに対して何を指定していますか?

于 2012-12-18T21:50:44.100 に答える