いくつかの異なるオプション...
P2 プラグイン
p2-maven-pluginを使用して、OSGi 以外のすべての依存関係をバンドルにラップし、p2 リポジトリを作成します。
p2-maven-plugin は試していません (現在のプロジェクトをセットアップしていたときには存在しませんでした)。その実装は tycho に基づいていますが、単に tycho プラグインを単独で使用するよりも、問題を解決するためのより便利な方法を提供することがわかるかもしれません。
バンドルプラグイン
maven-bundle-pluginを使用して OSGi 以外の依存関係をラップし(依存関係ごとに 1 つのラッパー pom)、それをリポジトリにインストールします。commons-math は既に依存関係にあると思うので、vecmath をラップする必要があるかもしれません。<dependencies>
次に、これらの依存関係をtycho ベースの pom ファイルにリストできます。
このアプローチには、プロジェクトをビルドするためだけに p2 リポジトリをセットアップする必要がないという利点があります。欠点は、バンドル プロジェクトの依存関係を管理するために、MANIFEST.MF ファイルを変更するだけでは済まないことです。pom も更新する必要がある場合があります。
バンドル プラグインと Tycho
バンドル プラグインアプローチを使用して依存関係を OSGi バンドルにラップする場合でも、これらの依存関係用に p2 リポジトリを設定すると便利な場合があります。これにより、Eclipse PDE でのターゲット プラットフォームの設定が簡単になるからです。
これを行うには、新しい tycho ベースのプロジェクトを作成して、依存関係を p2 リポジトリに収集します。つまり、既にバンドルされている依存関係と、非 OSGi 依存関係のラップされたバージョンを一緒に収集します。このようにして、p2 リポジトリを作成するプロジェクトはラップされた依存関係をその pom にリストし、バンドル プロジェクトは p2 リポジトリをそれらの pom に依存関係をリストせずに使用できます。
これが私が使用しているアプローチです。具体的には、eclipse-feature
プロジェクトを使用して、すべてのサードパーティの依存関係を含む基本機能を定義しています。また<deployableFeature>
、パッケージ プラグインの構成オプションを に設定してtrue
、ターゲット ディレクトリに p2 リポジトリを作成します。この機能は、私の通常の Eclipse インスタンスにインストールできるため、現在の Eclipse プラットフォームをターゲット プラットフォームとして簡単に使用できます。また、tycho ビルドの他の場所 (つまり、私のコード) で使用できる p2 リポジトリとして、または Eclipse.target
ファイルのリポジトリとして使用することもできます。
Tycho 0.13.0 では、これeclipse-feature
が最適なパッケージ タイプであると思われました。最近のバージョンでは、より適切なパッケージ タイプがある場合があります。