/ / od Maven2 po OSGI bundle - maven-2, osgi, maven-dependency-plugin, osgi-bundle, maven-bundle-plugin

od Maven2 po OSGI bundle - maven-2, osgi, maven-dependency-plugin, osgi-bundle, maven-bundle-plugin

Chcem previesť projekt Maven2 do zväzku OSGI. Snažím sa použiť maven-zväzok-plugin to by malo vytvoriť manifest podľa závislostí. Problém je v tom, že sa mi to podarí nechať fungovať.Pri nainštalovaní a spustení vygenerovaného balíka sa vždy vyskytuje chyba, ako je:

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

Pri každom pridaní ručne chýbajúce obmedzeniemedzi maven-bundle-plugin. Ale je tu vždy ďalšie chýbajúce obmedzenie. Teraz som prišiel na com.sun.javadoc, že ​​nemôžem v žiadnom prípade pridať. Každopádne ... Nemôžem pridať všetky balíky manuálne! Máte nejaký lepší nápad, prosím?

=== UPDATE ===

bez pridania čokoľvek v exportnej značke, prvá chyba spustenia balík dáva mi je:

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

odpovede:

0 pre odpoveď č. 1

Táto chyba znamená, že závisí niečo vo vašom balíku com.sun.javadoc, napr. ako priamy výsledok používania tohto API z vášho kódu. Musíte nájsť zväzok, ktorý exportuje API.

Teraz môžete uviesť, že skutočne nepoužívate com.sun.javadoc, Verím, že ste pravdepodobne pretiahli celoknačítanie ďalších závislostí tretích strán do vášho balíka ... fráza "zakaždým, keď som manuálne pridala chýbajúce obmedzenia", nastaví alarm zvončeky! Takže závislosť pravdepodobne existuje v niečom, čo by nemalo byť vo vašom zväzku.

Najlepšia vec, ktorú musíte urobiť, je vrátiť sa späť na začiatok skôr, ako začnete s pridávaním náhodných kúskov do zväzku v snahe odstrániť problém. To znamená, že váš balík obsahuje len tvoj code. Potom zistite, aký je chýbajúci import a nájdite balík, ktorý ho exportuje.