3

製品に静的 conf ファイルを追加して、RCP アプリケーションのユーザーの p2 デフォルト リポジトリを構成する方法について、Eclipse wiki に記事があります。

Equinox/p2/RCP アプリケーションへの自己更新の追加 - ユーザーのデフォルト リポジトリの設定

ユーザーが構成の詳細を変更したときに、Java クラスでプログラムを使用して同じことを行いたいと考えています。そのための適切な p2 API ドキュメントが見つかりませんでした。

4

4 に答える 4

4

Eclipse 3.7 ベースのアプリケーションには、次のソリューションを使用します。

final ProvisioningUI ui = ProvUIActivator.getDefault().getProvisioningUI();
IArtifactRepositoryManager artifactManager = ProvUI.getArtifactRepositoryManager(ui.getSession());
artifactManager.addRepository(new URI(UPDATE_SITE_URL);

IMetadataRepositoryManager metadataManager = ProvUI.getMetadataRepositoryManager(ui.getSession());
metadataManager.addRepository(new URI(UPDATE_SITE_URL);

ProvUIおよびProvisioningUIの場合、バンドルorg.eclipse.equinox.p2.uiおよびorg.eclipse.equinox.p2.operations (とりわけ)をインポートする必要があります

于 2011-09-12T08:09:59.530 に答える
3

解決策を見つけました。簡単です - 残念ながらドキュメントはありません...

    // from bundle org.eclipse.equinox.p2.console
    import org.eclipse.equinox.internal.p2.console.ProvisioningHelper;

    URI repoUri = new URI(UPDATE_SITE_URL);
    try {
        ProvisioningHelper.addMetadataRepository(repoUri);         
    } catch( Exception e ) {
        LOG.warn("Can not add update repository: " + repoUri);           
    }
    try {
        ProvisioningHelper.addArtifactRepository(repoUri);          
    } catch( Exception e ) {
        LOG.warn("Can not add update repository: " + repoUri);
    }
于 2010-07-20T07:45:33.073 に答える
0

これは、この問題に対する Google のクエリで高く評価されており、公開されている良い方法はまだありません。

私と同じように誰かが Google 経由でこのページを見つけた場合、私はこの問題を解決しました。org.eclipse.equinox.internal.p2.ui.model.ElementUtils.updateRepositoryUsingElements を使用して、プログラムでリポジトリを設定できます。完全なコードはここにあります。

于 2012-08-09T14:36:37.077 に答える