2017-12-21 23 views
0

Ich habe mehrere Maven-Module für mein Projekt. Alle diese Module sind Bündel.Maven-Bundle-Plugin erzeugt kein Recht Export-Paket

Ich benutze das maven-bundle-plugin um die Datei MANIFEST.MF zu erzeugen, die Import-Package und Export-Package Direktiven enthält.

Wenn ich ein Paket im Export-Paket festlege, erzeugt das maven-bundle-plugin das MANIFEST.MF ohne das Paket, das ich in der Konfiguration angegeben habe.

Warum macht das Plugin das? Es ist in meinem Fall nervig: Dieses Paket enthält Pakete, die von einem anderen Paket benötigt werden. Also ich habe ungelöste Abhängigkeiten, wenn ich versuche, meine Bundles zu starten ...

Hier ein Auszug meiner pom.xml ist:

<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> 

und das erzeugte Datei MANIFEST.MF enthält nicht die com. company.manager.impl Paket.

Kann mir jemand helfen?

Vielen Dank. Hejk

+0

BJ Antwort ist richtig ... aber warum exportieren, was zu sein scheint (anhand seines Namens) ein Umsetzungspaket? –

Antwort

0

Export-package ist falsch geschrieben. Es muss Export-Package sein.

0

Nun, ich habe die Quelle des Fehlers gefunden.

Nach der Dokumentation des Plug-in (etwas versteckt ...): ‚‘

Export-Paket wird nun angenommen, die Menge der Pakete in Ihrer lokalen Java-Sourcen zu sein, ohne das Standard-Paket und alle Pakete , die 'impl' oder 'internal' enthalten. (Vor Version 2 der bundleplugin wurde basierend auf dem symbolischen Namen)

Name meines Pakets wurde mit "impl". Ich habe es geändert. Es funktioniert jetzt ...

Hejk

+0

Noch besser: Implementierungs-Pakete nicht exportieren :-) –