2012-01-20 4 views
4

これはかなり長い質問です。オフラインの「コンポジット」Eclipseアップデートサイトをカテゴリ別に構築するためのソリューション

  • 各サイトには、サードパーティの混在するとします:私は心の中で次のようなもので、オフライン開発環境で使用するカスタム更新サイト(またはP2リポジトリ)を構築するためのソリューションを探していますカスタムEclipseプラグイン。

  • 私は、IDE構成ごとに1つのサイトを作成したいと考えています。例えばHeliosを使用する開発者は、m2e、Subversive、およびCustomPluginAを含む1つの更新サイトを追加するだけで済みます。 Flash Builderを使用する開発者は、m2eとCustomPluginBを含む別のサイトを追加できます。

  • 開発がオフラインであるため、現在mirror 3rd-party update sites with a scriptです。カスタムサイトでは、これらのコピーからプラグインを取得する必要があります。

  • カスタムEclipseプラグインは現在、JenkinsのMaven + Tychoでビルドされています。可能であれば、Jenkinsも自動的にアップデートサイトを構築するように設定したいと考えています。カスタムプラグインが更新されると、必要な更新サイトビルドがトリガーされます。

  • アップデートサイトのカスタムカテゴリはいいと思います。

私はこれにアプローチするための最もクリーンな方法を見つけようとしています。 Tychoを使ってサイトを構築するにはどうすればいいですか? Tychoは最高のオプションですか?サードパーティプラグインを各サイトにコピーするか、ミラー化された各サードパーティサイトを指すp2コンポジットリポジトリを作成する必要がありますか。 p2複合リポジトリを使用してカスタムカテゴリを作成することは可能ですか?

最後にサイトに含まれるプラグインと機能を実際に定義する最も簡単な方法は何ですか? Eclipseでは、簡単に編集できるUpdate Site Projectを作成できますが、そのEclipseインストールに存在するプラグインのみを含めることができます。手作業でsite.xmlまたはp2 antスクリプトを作成するとこの問題は解決しますが、インストール可能なユニットIDとバージョンを手作業で判断するのは難しく、エラーを起こしやすくなります。

このすべてを読んでいただきありがとうございます。誰かが私の懸念をすべて実際に解決することができれば素晴らしいと私はおそらくこの質問に奨励金を追加する必要があります。

答えて

4

私は、TychoとB3アグリゲータの2つの方法を提案します。

1)ティコ

ステップ1.:あなたの既存のローカル更新サイトを使用するPDE組み込みツールを使用して、ターゲットプラットフォームを定義し、.TARGETファイルとして保存します。するとこのようなビルドでこのファイルを参照することができます。

<plugin> 
    <groupId>org.eclipse.tycho</groupId> 
    <artifactId>target-platform-configuration</artifactId> 
    <version>${tycho.version}</version> <configuration> 
    <resolver>p2</resolver> 
    <target> 
    <artifact> 
     <groupId>org.eclipse.viatra2</groupId> 
     <artifactId>«project name where the target file resides»</artifactId> 
     <version>«artifact version»</version> 
     <classifier>«target filename without extension»</classifier> 
    </artifact> 
    </target> 
    <ignoreTychoRepositories>true</ignoreTychoRepositories> 
    </configuration> 
</plugin> 

ステップ2.:更新サイトとして新しいプロジェクトを定義します。プロジェクトには、前の手順で使用したターゲットプラットフォームの使用済み機能のバージョンを参照するcategory.xmlが含まれている必要があります。このcategory.xmlは、PDEカテゴリ定義ウィザード/エディタを使用して作成できます。

ステップ3。:単純に更新サイトの原型を使用してビルドを公開:

<packaging>eclipse-repository</packaging> 
<build> 
    <plugins> 
    <plugin> 
     <groupId>org.eclipse.tycho</groupId> 
     <artifactId>tycho-p2-publisher-plugin</artifactId> 
     <version>${tycho.version}</version> 
     <configuration> 
     <publishArtifacts>true</publishArtifacts> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 

2)B3アグリゲータ:

EclipseのB3プロジェクトはaggregator featureが含まれています。アグリゲータを使用して、既存の更新サイトを使用してモデルを定義し、単にアグリゲータを使用して、このモデルを実行し、その結果は更新サイトです。後者のケースでは、他の更新サイトを指し複合更新サイトを構築するか、またはあなたは、元のデータから、スタンドアロンのコピーを作成することができます。マニュアルには簡単な例があり、使いやすいです。モデルのみミラーリング説明が含まれ、また、既存のサイトを参照する複合更新サイトの作成を可能にするようにミラーリングロジックの定義

3)比較

は、B3でより簡単です。しかし、更新サイトビルディング以外の何かをしたい場合は、それは難しいです。加えて、ヘッドレスで実行することができる(例えばジェンキンスから)ビルドが、ヘッドレスEclipseのインスタンスのインストールを必要とします。ドキュメントには詳細が含まれていますが、このツールはMaven/Tychoの場合のようにスタンドアロンではありません。

Tychoの場合、結果の更新サイトの構造を見るのは難しいですが、結果として得られるビルドはより拡張性があります(たとえば、同じ種類のビルドを使用して独自のフィーチャを追加するなど)。 Mavenをインストールするだけでビルドができます。

のでalltogether、両方のツールは、あなたのニーズに合うかもしれない - あなたはあなたの場合には、その長所と短所を評価する必要があります。

関連する問題