2009-10-05 14 views
6

Eclipseプラグインの自動インストーラを作成したいとします(つまり、「Update Manager」を経由しない)。私のシナリオは単純です:ユーザはEclipseを閉じ、ダウンロードしたJARをdropinsフォルダにドロップし、Eclipseを起動し、残りのプロセスは自動化されます。Eclipse内からEclipseプラグインをプログラムでインストールしますか?

以前のEclipseバージョンでは、P2の時代の前に、Eclipseには、現在実行中のプラットフォームにプラグインをインストールするために使用できるInstallCommandというクラスがありました(まだあります)。

これはEclipse 3.4 & 3.5でも動作しますが、正しく動作しません。最も顕著なのは、インストールされたプラグインを自動的にアンインストールできない(淡色表示になります)。

JavaDocは、InstallCommandが推奨されていないと主張しており、代替P2に置き換える必要があります。しかし、私は仕事のための適切なツールを見つけることができませんでした。 P2 directorがありますが、コマンドラインとは別のアプリケーションとして実行するために構築されています。それはEclipse内から呼び出すことは可能ですが、それは実際にはそれではありません。たとえば、進捗状況の監視とエラー報告がうまく機能していないとします。

誰かが良い選択肢を知っていますか?

おかげで、 Zviki

+0

通常、プラグインをインストールするには、 'dropins'の下のフォルダにフィーチャーとプラグインを展開するだけで十分です。他に何をしたいですか? –

+1

真。しかし、私は商用プラグインを持っており、よりユーザーフレンドリーなエクスペリエンスを作り出そうとしています。この場合、dropinsフォルダにドロップすると、エラー報告が不明確になることがあります。すべてのEclipseユーザーが、問題を追跡して解決できるEclipseエキスパートではありません。 – zvikico

+0

あなたがインストールにあなた自身のことをしているなら、おそらくアップグレードであなた自身のことをする方が良いでしょう。 – AlBlue

答えて

1

Dropinsは、特に関連するメタデータなしでjarをダウンロードしている場合(つまり、メタデータを自動生成する必要がある場合)には非常に近いようです。

あなた自身を管理するために2番目のdropins領域を定義することを検討できます。 org.eclipse.equinox.p2.reconciler.dropinsのProfileSynchronizerを見てください。特にcreateProfileChangeRequestメソッドがあります。あなたが気に入らないアンインストール動作は、IInstallableUnit.PROP_PROFILE_LOCKED_IUプロパティが追加された結果です。

ドロップインは起動時に調整されます(p2.reconciler.dropins Activator.watchDropins()を参照)、別のフォルダを見るために自分のバンドルから同じことを行う可能性があります。

+0

私はdropinsの動作を複製するつもりはありませんPROFILE_LOCKEDについて - これはバグかもしれないので、誰でもこの段階でそれを修正するのを悩ますでしょう) – zvikico

+0

PROFILE_LOCKEDは現在のp2コードにありますが、目的にはそこにあることはわかっていますが、その理由はわかりません –

+0

私は今のところdropinsの解決策を検討しますが(ほとんどの場合動作します)、 JARのようなものだが、EARやWARのような別のサフィックス(OSGiの場合はOAR)があるかもしれないが、それはEclipseに関連付けられているのでダブルクリックするとEclipseが呼び出されるだろう。現在のOSGi実行フレームワークで呼び出される更新サイトまたは実行可能ファイルのURLを含んでいます。私は自分の考えを整理し、それを示唆するための問題を開きます。 – zvikico

0

は、私は、実行可能JARとしてあなたのプラグインを展開することをお勧めします。 JARのインストーラは、Eclipseのインストールディレクトリを尋ね、適切な場所にプラグインを展開します(必要に応じていくつかのチェックが必要です)。

オプションで、多くのことに依存せず、メインのプラグインが正しく読み込まれているかどうかを確認し、ユーザーがサポートのために電子メールで送信できる便利なエラーメッセージを表示する小さな「ウォッチドッグ」プラグインを含めます。

+0

それは良いオプションです、私はそれを自分で考えました。ただし、ターゲットプラットフォームでプロビジョニングアクションを実行する必要があります。標準的なplugins/featuresディレクトリ構造を想定するのではなく、P2がインストールを処理するようにしてください。これは正方形に戻ってきます...どのように? – zvikico

+0

p2ニュースグループに尋ねたり、P2ディレクターに対するバグを開いたりしますか? –

+1

これは、P2ディレクターにとって可能な拡張です。私はそれを提案するかもしれない。 P2グループについては、StackOverflowの方がはるかに優れています。私がEclipseのニュースグループで尋ねた質問のほとんどはそのまま残っていました。 – zvikico

0

InstallCommandの非推奨コメントで参照されているバグ311590 1の情報によると、P2操作2,3を使用する可能性があります。

関連する問題