1

Eclipse で、リモートの Eclipse p2 サイトから機能を追加する .target ファイルを作成しました。

ここで、ターゲット定義で定義された集約された機能のコピーであるローカル p2 サイトを作成したいと思います (そして、できればすべての環境に対して)。

このローカル p2 サイトを maven3/tycho を使用するビルド システムで使用する必要がありますが、これを行うための「安定した」方法が見つかりません。私は次のことを試しました:

1) ターゲット ファイルをローカル ディレクトリにエクスポートします。

問題: 機能/プラグインを含むフォルダーだけで p2 サイトが作成されません。

2) ターゲット ファイルをローカル ディレクトリにエクスポートし、そのディレクトリで eclipse FeaturesAndBundlesPublisher アプリケーションを実行します。

問題: これにより p2 サイトが作成されますが、元の機能/バンドルの一部が欠落しています。

3) buckmeister を使用して、.target ファイルから初期化された機能から p2 サイトを作成しました。

バックマイスターを使用したp2.site

問題: .target ファイルのコンテンツの元の機能が、結果の p2 サイトに保持されません。これは特に、ターゲット ファイルに次の機能が含まれている場合に問題になります。

4) 以下の内容をコピーします。

workspace.metadata.plugins\org.eclipse.pde.core.bundle_pool

問題: 有効な p2 サイトではありません。

リモートの p2 サイトから動作する (完全な機能を持つ) ローカルの p2 サイトを作成する方法について何か提案はありますか?

4

2 に答える 2

2

p2ミラーコマンドを使用したい。ミラーリングするリモートリポジトリURLとローカルディレクトリを指定します。これを行うためのAntマクロを次に示します。ほとんどのp2リポジトリは実際には1つに2つのリポジトリ(アーティファクトとメタデータ)であるため、2つのミラー呼び出しを行っていることに注意してください。

p2を使用するEclipseインストールの場所である「bootstrap.platform」プロパティセットが必要です。

  <macrodef name="p2.mirror">
    <attribute name="source"/>
    <attribute name="destination"/>
    <sequential>
      <echo message="Mirroring repository @{source} to @{destination}..."/>
      <java classname="org.eclipse.core.launcher.Main" fork="true" failonerror="true">
        <classpath>
          <fileset dir="${bootstrap.platform}/plugins">
            <include name="**/org.eclipse.equinox.launcher_*.jar"/>
          </fileset>
        </classpath>
        <arg line="-application org.eclipse.equinox.p2.artifact.repository.mirrorApplication"/>
        <arg line="-source @{source}"/>
        <arg line="-destination @{destination}"/>
      </java>
      <java classname="org.eclipse.core.launcher.Main" fork="true" failonerror="true">
        <classpath>
          <fileset dir="${bootstrap.platform}/plugins">
            <include name="**/org.eclipse.equinox.launcher_*.jar"/>
          </fileset>
        </classpath>
        <arg line="-application org.eclipse.equinox.p2.metadata.repository.mirrorApplication"/>
        <arg line="-source @{source}"/>
        <arg line="-destination @{destination}"/>
      </java>
    </sequential>
  </macrodef>
于 2011-03-04T21:47:13.517 に答える