P2ヘッドレスアップデートが機能していません
-
18-09-2019 - |
質問
org.eclipse.equinox.p2.examples.rcp.prestartupdateプロジェクトを採用し、RCPアプリケーションで使用するために適合しました。次に、毎晩のビルドの一部として更新される更新リポジトリをセットアップします。
アプリケーションを開くと、更新されているような動きを通過します。更新サイトを見つけ、各バンドルのアンインストールとインストールオペランドを正しくインストールし、エラーなしで終了したと表示されます。問題は、プロファイルが更新されている場合でも、プラグインが実際にプラグインフォルダーにインストールされることはないことです(その後の実行は更新がない状態)。次回私のビルドが正しく識別されると、更新がありますが、同じことが再び起こります。
私はデバッグを何日も費やしました、そして、普通のものから外見する唯一のもの(私が何が起こっているのかを完全に理解しているわけではありません)は、最終的な構成フェーズでは、タッチポイントDataオブジェクトには命令がないので、構成のように見えません。それがすべきことをする。
次にどこを見るべきかわからないので、他の誰かがアイデアを持っているかどうかを見たいと思っています。
アップデート:
私はついに何が起こっているのかを理解しました。
問題は、メタデータリポジトリを生成せずに製品を構築したときに始まりました。 Eclipseを介して構築するとき、私はP2リポジトリ、製品だけが必要ではなかったため、エクスポート製品ウィザードの「メタデータリポジトリの生成」をチェックしませんでした。問題は、そのボタンをチェックすることなく、P2が有効になっているため、製品がインストールされないことです。
私はこれをコード内で手動で作成することでこれを補償しようとしました。私のプロフィールが正しくセットアップされなかったため、私の元の問題は作成されました。
「Generate Metadata Repository」を使用して製品のエクスポートを開始すると、更新が新しいプラグインのインストールを正しくインストールし始めました。
私が今持っている問題は、プラグインが正しくインストールされているが、実行可能ファイルが破壊されており、アプリケーションをもう起動できないことです。 Hudsonと、Eclipse Export製品のウィザードを使用するときに存在するバイナリフォルダーを介して更新サイトを構築しています。私はそれが今何が間違っているのかと思っています。
バイナリが私のヘッドレスPDEビルドに構築されない理由はありますか?
これも理解しました。必要なのは、構築したいプラットフォーム用の個別のランチャープラグインだけだと思っていました。私はプロセスを理解しようとしていたので、私はプラグインを1つずつビルドサーバーにコピーしていました。デルタパックのorg.eclipse.equinox.executable機能を持つ必要があるビルドにプラットフォーム固有のバイナリを含めることが判明しました。ビルドにそれを追加すると、バイナリは出力に現れ始めました。バイナリを使用すると、更新メカニズムは意図したとおりに機能します。
解決
必要なのは、構築したいプラットフォーム用の個別のランチャープラグインだけだと思っていました。私はプロセスを理解しようとしていたので、私はプラグインを1つずつビルドサーバーにコピーしていました。デルタパックのorg.eclipse.equinox.executable機能を持つ必要があるビルドにプラットフォーム固有のバイナリを含めることが判明しました。ビルドにそれを追加すると、バイナリは出力に現れ始めました。バイナリを使用すると、更新メカニズムは意図したとおりに機能します。