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ď č. 1Tá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.