2017-12-21 32 views
0

私のプロジェクトにはいくつかのMavenモジュールがあります。これらのモジュールはすべてバンドルです。Mavenバンドルプラグインが正しく生成されないExport-Package

maven-bundle-pluginを使用して、Import-PackageおよびExport-Packageディレクティブを含むMANIFEST.MFファイルを生成します。

エクスポートパッケージで1つのパッケージを指定すると、maven-bundle-pluginはコンフィグレーションで指定したパッケージなしでMANIFEST.MF を生成します。

なぜプラグインがそれをしますか? 私の場合、このバンドルには別のバンドルに必要なパッケージがあります。だから私は私のバンドルを起動しようとすると、私は未解決の依存関係を持っている...ここで

は私のpom.xmlの抽出物である:

<plugin> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>maven-bundle-plugin</artifactId> 
    <extensions>true</extensions> 
    <configuration> 
     <instructions> 
      <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> 
      <Bundle-Description>${project.description}</Bundle-Description> 
      <Export-package>com.company.manager.impl</Export-package> 
     </instructions> 
    </configuration> 
</plugin> 

そして、生成されたMANIFEST.MFファイルは、COMが含まれていません。 company.manager.implパッケージ。

誰でも手伝ってもらえますか?

ありがとうございます。 Hejk

+0

BJの答えは正しいです...しかし、なぜあなたは(その名前に基づいて)であると思われるものの実装パッケージをエクスポートしますか? –

答えて

0

Export-packageのスペルが間違っています。それはExport-Packageである必要があります。

0

まあ、私はエラーの原因を発見しました。プラグインのマニュアル(少し隠し...)によると

エクスポート・パッケージは、デフォルトのパッケージを除く、あなたの ローカルのJavaソースにパッケージのセットであると想定されます「」 'impl'または 'internal'を含むパッケージ があります。 (bundleplugin のバージョン2の前にそれがシンボル名に基づいていた)

私のパッケージの名前は「IMPL」を含むました。私はそれを変えた。それが機能するようになりました...

Hejk

+0

さらに優れています:実装パッケージをエクスポートしないでください:-) –

関連する問題