2017-06-28 1 views
0

Kann ich eine Abhängigkeit wie private Paket mit Apache Felix Maven Bundle Plugin erklären?Kann ich eine Abhängigkeit wie ein privates Paket mit Apache Felix Maven Bundle Plugin deklarieren?

Ich möchte NoClassDefFoundException wegen der unterschiedlichen Version einer transitiven Abhängigkeit vermeiden.

Nach Apache Felix Maven Bundle Plugin documentation kann ich <Private-Package>org.apache.felix.log.impl</Private-Package> sehen, aber in diesem Beispiel ist die Abhängigkeit, die als privat erklärt wird, eine eigene Klasse.

Ich weiß nicht, ob diese Anweisung mit einer Abhängigkeit arbeiten könnte.

Antwort

1

Sie können das Private-Paket für ein Paket verwenden, das sich in einer Abhängigkeit befindet. Das Ergebnis wird sein, dass der Inhalt des Pakets in Ihr Paket eingebettet ist.

Seien Sie jedoch vorsichtig, da dies Import-Package-Anweisungen für alle Importe aller Klassen in diesem Paket verursacht. So kann Ihre Situation noch schlimmer werden.

+0

Vielen Dank für Ihre Antwort. Ich dachte das, aber ich würde gerne wissen, wie Eclipse dieses Problem löst. Vielleicht benutzt Eclipse etwas wie [BND] (http://bndtools.org/)? In diesem Fall ist BND kompatibel mit OSGi-Bundles? –

+0

Was meinst du mit Eclipse? Eclipse RCP oder die Plugin-Perspektive der IDE? Derzeit wird bnd nicht verwendet. –

+0

Eclipse lösen dieses Problem, wenn Sie Abschnitt Abhängigkeit in einer pom.xml-Datei betrachten, können Sie sehen, wie Eclipse transitive Abhängigkeit durch die aktuellste ersetzt, die durch andere Abhängigkeit bereitgestellt wird. Verstehst du? –

Verwandte Themen