2012-11-07 16 views
11

以前はバンドルと機能をファイルシステム上に用意していました。このようにして、Eclipseのエクスポートウィザードで簡単に使用できました。Tychoビルドでサードパーティのバンドルを含むディレクトリを使用する方法

今、私はeclipse-pluginを第三者の依存関係を持つTychoで構築しようとしています。 javax.vecmathおよびorg.apache.commons.math

私が知っているから、Tychoビルドの依存関係を取得する最善の方法は、p2リポジトリを使用することです。だから私はEclipseバンドルのために1つを使用しています。しかし、私のサードパーティのバンドルでは、利用可能なp2リポジトリがないようです。

私の質問は次のとおりです:JAR(vecmath、commons-math)をp2リポジトリに簡単に取得するにはどうすればよいですか?

私はTychoでp2リポジトリを構築できると思っていましたが、Tychoのサードパーティのバンドルにアクセスできない場合はどうすればいいですか?私はターゲット定義を使用しようとしましたが、Tychoはディレクトリやインストールではなく、p2リポジトリへのリンクのみをサポートしています。 Maven/Tychoビルドでサードパーティの依存関係を使用する他の方法はありますか?

答えて

0

ご質問によると、サードパーティの依存関係は既にバンドルされています。これはいいです–残っているのは、バンドルのp2メタデータを生成することだけです。

これはFeatures and Bundles Publisher applicationで簡単に行うことができます。結果はp2リポジトリです。明らかに、Tychoビルドを実行するにはすべての開発者がローカルで行う必要があるので、パブリッシャアプリケーションの結果をWebサーバーに配置する必要があります。次に、プロジェクトのターゲットファイル内のhttp URL経由でバンドルを参照します。 p2のレポでサードパーティのバンドルのjarファイルを探すために

+0

これは、p2 repoを作成する最も簡単で最速の方法でした。みなさん、ありがとう。 – Timo

+4

私は同意しません。手動でサイトを生成する必要があります。また、jarファイルがバンドルでない場合は、自分でバンドルする必要があります。そのすべては世俗的で面倒なものであり、p2-maven-plugin(以下に述べる)を使って簡単に自動化することができます。私はp2-maven-pluginの作者であり、 "Features and Bundles Publisher Application"を使用するのは本当に面倒だということが分かったからです。 p2-maven-pluginを試してみると、何よりも簡単です。https://github.com/reficio/p2-maven-plugin –

+0

うん、私はp2-maven-pluginが最適なソリューションのように見えることに同意します。 Eclipse/RCPプロジェクトでサードパーティの依存関係を処理することは、本当に苦痛です。 p2-maven-pluginはこの苦痛を大幅に軽減し、リストをどこかに維持し、CIビルドからp2アップデートサイトを公開するだけで、すべてのタイコビルドで使用できるように見えます。 – Kris

11

、いくつかの異なるオプション...

P2プラグイン

使用p2-maven-plugin束に、すべての非OSGiの依存関係をラップし、P2リポジトリを作成します。

私はp2-maven-pluginを試していません(私の現在のプロジェクトをセットアップしていたときには存在しませんでした)。その実装はタイコをベースにしていますが、タイコプラグインだけではなく、あなたの問題を解決するためのより便利な方法を提供しているかもしれません。

バンドルプラグイン

使用maven-bundle-pluginラップにごOSGi以外の依存関係(依存あたり1つのラッパーPOM)、およびリポジトリにそれをインストールします。私はコモンズの数学はすでに依存関係だと思うので、あなたはvecmathをラップする必要があります。あなたはそれらの依存関係をあなたのtychoベースのpomファイルの<dependencies>に挙げることができます。

このアプローチには、プロジェクトを構築するためだけにp2リポジトリを設定する必要がないという利点があります。欠点は、バンドルプロジェクトの依存関係を管理することが、もはやMANIFEST.MFファイルを変更するだけでなく、pomも更新する必要があることです。

バンドルプラグインとティコ

あなたがたOSGiバンドルの中にあなたの依存関係をラップにバンドルプラグインアプローチを使用している場合、これは単純化して、まだ、とにかくそれらの依存関係のためのP2リポジトリを設定することが有用であり得ますEclipse PDEでターゲットプラットフォームをセットアップします。

これを行うには、新しいタイコベースのプロジェクトを作成して、依存関係をp2リポジトリに収集します。つまり、既にバンドルされている依存関係と、OSGi以外の依存関係のラップされたバージョンです。このようにして、p2リポジトリを作成するプロジェクトでは、pomにラップされた依存関係がリストされ、バンドルプロジェクトはp2リポジトリを消費する可能性があります。

これは私が使用しているアプローチです。具体的には、eclipse-featureプロジェクトを使用して、ベースフィーチャー(サードパーティのすべての依存関係を含む)を定義しています。また、trueに設定されているパッケージ化プラグインの<deployableFeature>設定オプションがあります。これにより、ターゲットディレクトリにp2リポジトリが作成されます。この機能は、通常のEclipseインスタンスにインストールすることができます。これにより、現在のEclipseプラットフォームをターゲット・プラットフォームとして簡単に使用できます。また、tychoビルドのどこかで(つまり私のコードによって)、またはEclipse .targetファイルのリポジトリとして使用できるp2リポジトリとしても使用できます。

eclipse-featureは、Tycho 0.13.0で最高のパッケージングタイプと思われました。より最近のバージョンでは、より適切なパッケージングタイプが存在する可能性があります。

+0

この質問に答えます:http://stackoverflow.com/q/29664505/1523648 – oberlies

1

良い場所は

http://download.eclipse.org/tools/orbit/downloads/

commons.mathがそこにある日食軌道です。

お使いのサードパーティのOSGiバンドルは、P2レポでは利用できませんが、そのような

http://search.maven.org/

としてMavenのレポであなたはティコのpomDependency =考慮スイッチを使用する場合:

http://wiki.eclipse.org/Tycho/How_Tos/Dependency_on_pom-first_artifacts

+0

数分前に軌道が見つかりました。本当に便利です。他のアドバイスは面白そうですね、ありがとう。 – Timo

関連する問題