/ / Von Maven2 zu OSGI Bundle - Maven-2, OSGI, Maven-Abhängigkeits-Plugin, OSGI-Bundle, Maven-Bundle-Plugin

von Maven2 zu OSGI bundle - maven-2, osgi, maven-dependency-plugin, osgi-bundle, maven-bundle-plugin

Ich möchte ein Maven2-Projekt in einem OSGI-Bundle konvertieren. Ich versuche zu benutzen Maven-Bundle-Plugin Das sollte das Manifest nach Maven-Abhängigkeiten erstellen. Das Problem ist, dass ich es nicht schaffen kann. Wenn ich das generierte Bundle installiere und ausführe, gibt es immer einen Fehler wie:

org.osgi.framework.BundleException: The bundle "My_OSGI_Bundle" could not be resolved. Reason: Missing Constraint: Import-Package: com.sun.javadoc;

Jedes Mal füge ich manuell die fehlende Einschränkung hinzuunter den Maven-Bundle-Plugin. Aber es gibt immer noch eine weitere fehlende Einschränkung. Jetzt bin ich auf com.sun.javadoc fest, dass ich in keiner Weise hinzufügen kann. Wie auch immer ... Ich kann nicht alle Pakete manuell hinzufügen! Hast du eine bessere Idee, bitte? Danke

=== UPDATE ===

Ohne etwas im Export-Tag hinzuzufügen, ist der erste Fehler, den der Run des Pakets mir gibt:

org.osgi.framework.BundleException: The bundle "Partes_0.1.0.SNAPSHOT [55]" could not be resolved.
Reason:Missing Constraint: Import-Package: com.eviware.soapui.config; version="0.0.0" at
org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1327) at
org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureException(AbstractBundle.java:1311) at ..

Antworten:

0 für die Antwort № 1

Dieser Fehler bedeutet, dass etwas in Ihrem Paket davon abhängt com.sun.javadoc, z.B. als direkte Folge der Verwendung dieser API aus Ihrem Code. Sie müssen ein Paket finden, das diese API exportiert.

Sie können jetzt angeben, dass Sie nicht verwenden com.sun.javadoc. Ich glaube, Sie haben wahrscheinlich ein Ganzes hineingezogenLaden Sie zusätzliche Abhängigkeiten von Drittanbietern in Ihr Bundle ... Der Ausdruck "jedes Mal, wenn ich die fehlende Einschränkung manuell hinzugefügt habe" löst Alarmglocken aus! Also besteht die Abhängigkeit wahrscheinlich in etwas, das überhaupt nicht in Ihrem Bündel sein sollte.

Am besten gehen Sie zum Anfang zurück, bevor Sie mit dem Hinzufügen von zufälligen Bits zu Ihrem Paket begonnen haben, um das Problem zu beheben. Das heißt, stellen Sie sicher, dass Ihr Paket nur enthält Ihre Code. Finde dann heraus, was der fehlende Import ist, und finde ein Bündel, das es exportiert.