Ich erstelle ein OSGI-Paket von einem Maven-Modul mit dem maven-bundle-plugin.Wie identifiziere ich die Quelle einer Paketversion im Manifest, das von maven-bundle-plugin erzeugt wurde?
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
<Import-Package>
*
</Import-Package>
<Export-Package>
my.bundle.packages
</Export-Package>
</instructions>
</configuration>
</plugin>
Leider scheint eine Abhängigkeit zu sein, diejavax.annotation aussetzt. Aus diesem Grund enthält das generierte Manifest Import-Package: javax.annotation;version="[3.2,4)"
Wie kann ich herausfinden, welche Abhängigkeit dieses Paket exportiert? Durch die Verwendung von mvn dependency:list
konnte ich einige Abhängigkeiten ausschließen (com.google.code.findbugs: Anmerkungen und com.google.code.findbugs: jsr305), aber der Versionsbereich bleibt erhalten. Ich habe in den Manifest-Dateien der direkten Abhängigkeiten gesucht, aber kein anderes jar gefunden, das javax.annotation exportiert.
Hinweis: Ich könnte hinzufügen, eine Abhängigkeit zu javax.annotation: com.springsource.javax.annotation und das Manifest würde javax.annotation Version 1.0.0 korrekt importieren, aber dies sollte nicht notwendig sein, und ich persönlich würde es finden sauberer, um die unbekannte Abhängigkeit auszuschließen.
Welche jar Abhängigkeits enthalten das Paket javax.annotations? –
Keine von ihnen, aber möglicherweise eine verschachtelte Abhängigkeit, die tut. Dieses Paket ist Teil des jdk und zur Laufzeit wird das Quellenquellen-Bundle bereitgestellt. – TomVW
Der 3.x-Bereich des Imports könnte auf den Frühling zeigen, wenn Sie Feder 3.x verwenden. Können Sie Ihren Pom-Inhalt posten? –