2017-06-28 4 views
0

Puis-je déclarer une dépendance comme un paquet privé en utilisant Apache Felix Maven Bundle Plugin?Puis-je déclarer une dépendance comme un paquet privé en utilisant Apache Felix Maven Bundle Plugin?

Je voudrais éviter NoClassDefFoundException en raison de la version différente d'une dépendance transitive.

Après Apache Felix Maven Bundle Plugin documentation Je peux voir <Private-Package>org.apache.felix.log.impl</Private-Package>, mais dans cet exemple la dépendance qui est déclarée comme privée est une propre classe.

Je ne sais pas si cette instruction pourrait fonctionner avec une dépendance.

Répondre

1

Vous pouvez utiliser Private-Package pour un package situé dans une dépendance. Le résultat sera que le contenu du paquet est intégré dans votre paquet.

Attention, car cela entraînera des instructions Import-Package pour toutes les importations de toutes les classes de ce package. Donc, en effet, peut aggraver votre situation.

+0

Merci pour votre réponse. Je pensais cela, mais j'aimerais savoir comment Eclipse résout ce problème. Peut-être que Eclipse utilise quelque chose comme [BND] (http://bndtools.org/)? Dans ce cas, BND est compatible avec les bundles OSGi? –

+0

Qu'entendez-vous par Eclipse? Eclipse RCP ou la perspective plugin de l'IDE? Il n'utilise pas actuellement bnd. –

+0

Eclipse résout ce problème, si vous regardez la section Dependency dans un fichier pom.xml, vous pouvez voir qu'Eclipse remplace la dépendance transitive par la dépendance la plus courante fournie par une autre dépendance. Comprenez vous? –