質問
とともに P2アリタスク, 、機能のためにプラグインをミラーリングするのは非常に簡単です。
しかし、機能をインストールするために必要なすべてをミラーリングするにはどうすればよいですか?
解決
得られませんでした p2.mirror
働く;このタスクは、あまりにも多く(最後のものや特定のものに興味がある場合でも機能のすべてのバージョンのように)、および/または少なすぎる(機能だけでなく、依存関係はありません)のいずれかを反映しています。
私の解決策はこんな感じでした:
- Eclipseを開梱します
eclipse-template
- asとしてコピーを作成します
eclipse-install
- 機能をインストールします
eclipse-install
- ステップ#1からバージョンに存在するコピー内のファイルを削除します(
cd eclipse-template ; find . -type f -exec rm "../eclipse-install/{}"
).
これにより、機能とプラグインファイルが残ります。使用する org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher
それをP2リポジトリに変える(ドキュメントを参照してください 詳細については)。
更新2011-11-01 コマンドラインからこれを実行する必要がない場合、別の解決策があります。
- Eclipseプロジェクトで「ターゲット定義」を作成します(新しいものを作成するか、既存のプロジェクトを使用しても、問題ではありません)
- この *ターゲットファイルに更新サイトを追加します
- 必要な機能を選択します
- ターゲット定義エディターの右上隅にある小さな「エクスポート」ボタンをクリックします(「ターゲットプラットフォームとして設定」の横にあります)
これにより、選択した正確なバージョンと、選択したフォルダー内のすべての依存関係を使用して、選択したすべての機能をエクスポートします。
ターゲットエディターは少し不器用で遅いですが、機能します。
ファイルをバージョン制御下に保ちます ターゲットエディターが時々台無しになるからです。
他のヒント
次のANTコードを使用して、単一のリポジトリの2つの機能をミラーリングしています。
<!-- Creates single p2 repo from 2 repos -->
<p2.mirror>
<repository location="file:///${DESTINATION}/repo-name" append="false"/>
<source>
<repository location="file:///${feature1-repo}/feature1"/>
<repository location="file:///${feature2-repo}/feature2"/>
</source>
</p2.mirror>
さらに、使用できます <iu>
ミラーリングする機能を指定する機能のID。機能IDは、次の方法で指定する必要があります。
your.feature.id.group.group.group
機能の特定のプレートフォーム構成がある場合、IUは
your.feature.id.win32.win32.x86 (OS, Widget system, Architecture)
所属していません StackOverflow