3

私は org.eclipse.equinox.p2.examples.rcp.prestartupdate プロジェクトを採用し、RCP アプリケーションで使用できるように調整しました。次に、毎晩のビルドの一部として更新される更新リポジトリをセットアップします。

アプリケーションを開くと、更新中のように動きます。更新サイトが見つかり、各バンドルのアンインストールおよびインストール オペランドが正しく生成され、エラーなしで終了したと表示されます。問題は、プロファイルが更新されても、プラグインが実際にはプラグイン フォルダーにインストールされないことです (その後の実行では更新がないと表示されます)。次回ビルドを実行すると、更新があることが正しく識別されますが、同じことが再び起こります。

私はデバッグに何日も費やしましたが、通常とは異なるように見える唯一のこと (何が起こっているのかを完全に理解しているわけではありません) は、最後の構成フェーズで TouchpointData オブジェクトのいずれにも指示がないため、configure のようには見えないことです。すべきことをしている。

私は次にどこを見ればいいのかまったく見当がつかないので、他の誰かが何かアイデアを持っているかどうかを知りたい.

アップデート:

私はついに何が起こっているのかを理解しました。

この問題は、メタデータ リポジトリを生成せずに製品をビルドしたときに発生しました。Eclipse でビルドするときは、製品のエクスポート ウィザードで [メタデータ リポジトリの生成] をチェックしませんでした。これは、p2 リポジトリは必要なく、製品だけが必要だったからです。問題は、そのボタンをチェックしないと、製品が P2 対応としてインストールされず、特にプロファイルが生成されないなどの副作用が発生することです。

コードでプロファイルを手動で作成することでこれを補おうとしましたが、それは本当に悪い考えであることがわかりました。プロファイルが正しく設定されていなかったため、元の問題が発生しました。

「メタデータ リポジトリの生成」を使用して製品のエクスポートを開始すると、更新プログラムが新しいプラグインを正しくインストールし始めたことを確認しました。

私が今抱えている問題は、プラグインが正しくインストールされているにもかかわらず、実行可能ファイルが破棄され、アプリケーションを起動できなくなっていることです。Hudson を使用して更新サイトを構築していますが、Eclipse エクスポート製品ウィザードを使用すると存在するバイナリ フォルダーが見つかりません。それが今間違っていると思います。

ヘッドレス PDE ビルドでバイナリがビルドされない理由はありますか?

これも思いつきました。必要なのは、構築したいプラットフォーム用の個々のランチャー プラグインだけだと思っていました。プロセスを理解しようとしていたので、プラグインを 1 つずつビルド サーバーにコピーしていました。デルタ パックの org.eclipse.equinox.executable 機能が必要なビルドに、プラットフォーム固有のバイナリが含まれていることが判明しました。それをビルドに追加すると、バイナリが出力に表示され始めました。バイナリを使用すると、更新メカニズムは意図したとおりに機能します。

4

1 に答える 1

2

必要なのは、構築したいプラットフォーム用の個々のランチャー プラグインだけだと思っていました。プロセスを理解しようとしていたので、プラグインを 1 つずつビルド サーバーにコピーしていました。デルタ パックの org.eclipse.equinox.executable 機能が必要なビルドに、プラットフォーム固有のバイナリが含まれていることが判明しました。それをビルドに追加すると、バイナリが出力に表示され始めました。バイナリを使用すると、更新メカニズムは意図したとおりに機能します。

于 2010-09-23T16:09:50.020 に答える