EclipseのPDEで使用するjarファイルを構築しますか?
質問
私は、サードパーティのライブラリを使用するアプリケーションを書かれています。私は、(サードパーティジャーの一部を含む、すべての依存関係ジャーの製造)Mavenのアセンブリ・プラグインを使用して実行ジャーとしてこれをパッケージ化している。
次の私はそれが日食から起動できるように、PDEプロジェクトにこのjarファイルを追加する必要があります。しかし、この作品を作るために、私はすでにパッケージ化瓶に位置している私のPDEプロジェクトにthirsパーティの依存関係のいくつかを追加する必要があります。私は重複の依存関係を取得しますので。これを回避する方法上の任意のアイデア?それともこれが適切に行われている方法を説明しますドキュメントへの提案?
解決
あなたは、OSGiバンドルだjarファイルを、構築する必要があります。同様に他のプラグイン/バンドルのコードを利用できるように輸出のパッケージオプションを追加するように注意してください。
それはIDによって他のプラグインのために利用できるようになるので、あなたは、PDEプロジェクト(設定でターゲットプラットフォームの検索)で使用するターゲットプラットフォームにこのjarファイルをインストールすることができた後(あなたが依存関係としてそれを追加することもできます)ます。
この方法は、少なくとも一つのプラグインがあなたのjarファイルを必要とする場合、それはロードされるが、数回ロードされません。
他のヒント
私はあなたのjarファイル内の他のjarファイルを含めるように単なる悪い習慣だと思います。あなたはそのように維持したい場合はしかし、どのように1つのビルドから2つのjarファイルを作成する方法について:依存関係を完全に1、およびPDEでの使用に簡単なものを
(ジャストアセンブリプラグインで複数の実行を使用します)私は今のmaven-バンドル・プラグインを使用しています:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>1.4.0</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${pom.groupId}.${pom.artifactId}</Bundle-SymbolicName>
<Bundle-Name>${pom.name}</Bundle-Name>
<Bundle-Version>${pom.version}</Bundle-Version>
<Bundle-Activator>org.wso2.mbp.sample01.Activator</Bundle-Activator>
<Private-Package>org.wso2.mbp.sample01</Private-Package>
</instructions>
</configuration>
</plugin>
http://felix.apache.org /site/apache-felix-maven-bundle-plugin-bnd.htmlする
バンドルを構築するために、。
:それはのような私が使用してMavenのアセンブリ・プラグイン、とジャービルドのMANIFESTファイルが作成されますので、しかし、どのように私は、バンドルプラグインを使用します <plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>true</appendAssemblyId>
<finalName>myApp</finalName>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.TestMain</mainClass>
<packageName>com.</packageName>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin>