問題タブ [p2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
eclipse - P2 ヘッドレス アップデートが機能しない
私は org.eclipse.equinox.p2.examples.rcp.prestartupdate プロジェクトを採用し、RCP アプリケーションで使用できるように調整しました。次に、毎晩のビルドの一部として更新される更新リポジトリをセットアップします。
アプリケーションを開くと、更新中のように動きます。更新サイトが見つかり、各バンドルのアンインストールおよびインストール オペランドが正しく生成され、エラーなしで終了したと表示されます。問題は、プロファイルが更新されても、プラグインが実際にはプラグイン フォルダーにインストールされないことです (その後の実行では更新がないと表示されます)。次回ビルドを実行すると、更新があることが正しく識別されますが、同じことが再び起こります。
私はデバッグに何日も費やしましたが、通常とは異なるように見える唯一のこと (何が起こっているのかを完全に理解しているわけではありません) は、最後の構成フェーズで TouchpointData オブジェクトのいずれにも指示がないため、configure のようには見えないことです。すべきことをしている。
私は次にどこを見ればいいのかまったく見当がつかないので、他の誰かが何かアイデアを持っているかどうかを知りたい.
アップデート:
私はついに何が起こっているのかを理解しました。
この問題は、メタデータ リポジトリを生成せずに製品をビルドしたときに発生しました。Eclipse でビルドするときは、製品のエクスポート ウィザードで [メタデータ リポジトリの生成] をチェックしませんでした。これは、p2 リポジトリは必要なく、製品だけが必要だったからです。問題は、そのボタンをチェックしないと、製品が P2 対応としてインストールされず、特にプロファイルが生成されないなどの副作用が発生することです。
コードでプロファイルを手動で作成することでこれを補おうとしましたが、それは本当に悪い考えであることがわかりました。プロファイルが正しく設定されていなかったため、元の問題が発生しました。
「メタデータ リポジトリの生成」を使用して製品のエクスポートを開始すると、更新プログラムが新しいプラグインを正しくインストールし始めたことを確認しました。
私が今抱えている問題は、プラグインが正しくインストールされているにもかかわらず、実行可能ファイルが破棄され、アプリケーションを起動できなくなっていることです。Hudson を使用して更新サイトを構築していますが、Eclipse エクスポート製品ウィザードを使用すると存在するバイナリ フォルダーが見つかりません。それが今間違っていると思います。
ヘッドレス PDE ビルドでバイナリがビルドされない理由はありますか?
これも思いつきました。必要なのは、構築したいプラットフォーム用の個々のランチャー プラグインだけだと思っていました。プロセスを理解しようとしていたので、プラグインを 1 つずつビルド サーバーにコピーしていました。デルタ パックの org.eclipse.equinox.executable 機能が必要なビルドに、プラットフォーム固有のバイナリが含まれていることが判明しました。それをビルドに追加すると、バイナリが出力に表示され始めました。バイナリを使用すると、更新メカニズムは意図したとおりに機能します。
eclipse - Eclipse 3.5 はプラグイン ディレクトリ内のすべてのバンドルを検出できますか?
シンプルなユースケース: シンプルなスクリプトを使用して Eclipse 製品をアセンブルし、プラグイン dir にバンドルをダンプするだけです。これは 3.3 で機能していましたが、3.5 では壊れています。アプリのプラグインが見つからないため、アプリケーションが起動しません。
質問: それを修正する最も簡単な方法は何ですか? これは、私にとってアップグレード プロセス全体で唯一の苦痛のようです。
試行: これは P2 にはノーノーだと思います: 代わりに bundles.info ファイルを維持します。これはおそらく非常にスマートです.. 私には少しスマートすぎます.
私が持っていたいくつかのアイデア:
- P2 を完全にスキップして、昔ながらのシンプルで汚い発見メカニズムに戻ることはできますか?
- プラグイン ディレクトリを「監視ディレクトリ」として設定できますか
- そのためには p2.reconciler を使用する必要があるようです..ちょっと待ってください、すでに非推奨です:-(バグ 251561 .. (ポインタをくれた VonC に感謝します)
- config.ini のこの古い設定はまだ機能しますか? (現在は「simpleconfigurator」に置き換えられています)
osgi.bundles=org.eclipse.equinox.common@2:start, org.eclipse.update.configurator@3:start, org.eclipse.core.runtime@start
- (p2)ディレクターに電話する必要がありますか?「私のプラグインを拾ってください」:)
- これにはドロップインフォルダーを避けます-それはエンドユーザー向けです。
- 可能であれば、bundles.info をいじることは避けたいと思います。
私は自分の製品のスマートな機能についてはまだ気にしていません。実際、ユーザーは組み込みの更新メカニズムをまったく使用していません。だから私はKISSしたい(つまり、起動するだけ)、必要に応じてより高度なサポートを追加したい.
私はEclipseフォーラムでこれを尋ねましたが、まだ答えがないので、いくつかの啓発に本当に感謝しています. また、仮定について自由に修正してください - 私はP2 docsを読んだばかりで、時々混乱しているように見えます。ありがとう!
回答: 実際には、上記のオプション 3 が機能するようです -これを確認してくれたFrancisに感謝します! (元々は機能しませんでしたが、おそらく deps の欠落が原因でした)。それに関する私の唯一の問題は、一部の Eclipse バンドルが実際には simpleconfigurator を必要とすることです。そのため、交換すると問題が発生するのではないかと思います。
java - RCP アプリの更新サイトを構築する最良の方法
以下で構成される RCP アプリがあります。
製品定義ファイルはメイン プラグインに存在します (これは悪い考えですか?)。
製品定義は「プラグイン」に基づいており、ワークスペース内のすべてのプラグインに依存しています。
ここで、RCP アプリのユーザーがアプリを更新できるようにします。これには、新規/変更された HTML ヘルプ ファイル、新しいプラグイン、既存のプラグインの変更されたコードなどが含まれます。
これを行うには何が必要ですか?
ワークスペース/プロジェクト階層を設定する最良の方法は何ですか?
eclipse - Eclipse の外部で P2 Ant タスクを実行する
Eclipse内でantスクリプトを正常に実行できました ここにその一部があります:
しかし、Hudson CI サーバーで実行できるようにしたいのですが、ANT_HOME/lib に配置したすべての jar に関係なく、このタスクを単純なコマンド ライン ant で実行することはできません... 私はこれで立ち往生しましたエラー :
p2 ant タスクはどこで定義されていますか? それらを Eclipse の外で実行する方法はありますか? 助けてくれてどうもありがとう!アンソニー
java - Eclipse P2 を使用して Java が提供するパッケージを処理する方法
Java自体によって提供される「org.ietf.jgss」などのバンドルへの依存関係を宣言するバイナリ形式のOSGiバンドルをいくつか取得しました。P2 はこれらの依存関係を検出し、後で P2 director アプリケーションを使用して製品をインストールしようとすると、これらのパッケージを提供するバンドルがないため、インストールは失敗します。しかし、P2 製品ビルドを使用すると、使用できる完全にインストールされた製品が得られます。
私の問題は、アプリケーションのバリエーションごとに製品ファイルを作成してビルドしたくないということです。そこで、P2 ディレクタを使用してターゲット システムに製品をインストールするために、すべての P2 リポジトリをコピーするアプローチを試みました。
では、Java によって提供されるパッケージへの依存関係を処理する方法と、Java 自体によって提供される場合にこれらのパッケージを無視するように P2 に「説得」する方法を教えてください。
助けてくれてありがとう。
eclipse - Eclipse UI を使用せずにプラグインの更新を実行する
コマンド ラインから Eclipse Galileo SR2 インストールのプラグインを更新しようとしています。
このコマンドに似たもの (特定の機能を要求します):
p2または他のEclipseアプリケーションランナーを使用してコマンドが存在するかどうかは誰にもわかりませんか?
eclipse - P2 タッチポイントの chmod が機能しない?
私は Eclipse 3.5.2 を使用しており、次の情報で p2.inf を作成しました。
フラグメントの META-INF フォルダー内に p2.inf を配置しましたが、更新サイトをインストールすると、libfoo.so に実行権限がありません。
髪を抜いた後、存在しない *.so を参照する p2.inf を試しましたが、何も起こらないようです。P2 タッチポイント アクションが失敗したことを示すエラー メッセージ、例外、または警告はありません...
どうしたんだ?何か案は?
eclipse - org.eclipse.testバンドルのP2リポジトリ
org.eclipse.testを含むp2リポジトリはどこにありますか?
eclipse - Equinoxの場合OSGiバンドルを、その機能を含むp2.infから開始したものとしてマークすることは可能ですか?
いくつかのバンドルを含むEclipse機能があります。機能のインストール時に、これらのバンドルの1つを開始済みとしてマークするようにp2に指示したいと思います。これは、バンドル独自のMETA-INF/p2.infを使用して可能です。
ただし、これはバンドルレベルではなく、機能レベルで実行したいと思います(問題のバンドルはサードパーティであり、可能であれば、いかなる方法でも変更しないことをお勧めします)。
いくつかの調査により、構成手順を含まれている機能のp2.infに移動できるはずであることが示唆されているこのドキュメントにたどり着きました。私は次のような明白なことをすべて試しました、
しかし、これまでのところ、私が試した順列はどれも効果がありません。何も起こらないので、バンドルは開始済みとしてマークされず、エラーは報告されません)。
どんなポインタでも大歓迎です。Eclipse Equinox Galileo(3.5.2)を使用しています...Heliosに関する回答も非常に役立ちます。
eclipse - Equinox では、ある機能/バンドルが別の機能/バンドルを廃止することは可能ですか?
私は、最近新しいホームに移動した Eclipse ベースのプロジェクト (Eclipse 用の Scala IDE) を持っています。さまざまな機能 ID、Bundle-SymbolicNames などを移動を反映するように変更し (つまり、すべてに org.scala-ide プレフィックスが付くようにする)、バージョン番号付けを再開したい (以前は対応する Scala コンパイラ リリースに関連付けられていた)これらを分離したい)。
しかし、p2にそれを認識してもらいたいです。org.scala-ide.sdt.feature v. 1.0.0 は、ch.epfl.lamp.sdt v. 2.7.7 のアップグレードです。RPM では、 obsoletes ディレクティブを使用してこれを行うことができます... p2 に相当するものはありますか?