от Maven2 до пакета OSGI

Я хочу преобразовать проект Maven2 в пакет OSGI. Я пытаюсь использовать maven-bundle-plugin, который должен создать манифест в соответствии с зависимостями maven. Проблема в том, что я не могу заставить его работать. Когда я устанавливаю и запускаю сгенерированный пакет, всегда возникает ошибка, например:

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

Каждый раз, когда я вручную добавляю отсутствующее ограничение среди плагинов maven-bundle-plugin. Но всегда есть еще одно отсутствующее ограничение. Теперь я застрял на com.sun.javadoc, который никак не могу добавить. В любом случае... Я не могу добавить все пакеты вручную! У вас есть идея получше, пожалуйста? Спасибо

===ОБНОВЛЕНИЕ===

без добавления чего-либо в тег экспорта, первая ошибка, которую мне дает запуск пакета:

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

person DeLac    schedule 02.07.2013    source источник


Ответы (1)


Эта ошибка означает, что что-то внутри вашего пакета зависит от com.sun.javadoc, например. как прямой результат использования этого API из вашего кода. Вам нужно найти пакет, который экспортирует этот API.

Теперь вы можете заявить, что фактически не используете com.sun.javadoc. Я полагаю, что вы, вероятно, перетащили в свой пакет целую кучу дополнительных сторонних зависимостей ... фраза «каждый раз, когда я вручную добавлял отсутствующее ограничение» вызывает тревогу! Таким образом, зависимость, вероятно, существует в чем-то, чего вообще не должно быть в вашем комплекте.

Лучше всего вернуться к началу, прежде чем вы начали добавлять случайные биты в свой пакет, пытаясь решить проблему. То есть убедитесь, что ваш пакет содержит только ваш код. Затем узнайте, что такое отсутствующий импорт, и найдите пакет, который его экспортирует.

person Neil Bartlett    schedule 02.07.2013
comment
когда я сказал, что каждый раз, когда я добавляю вручную. Я имею в виду, что каждый раз, когда у меня возникает ошибка, отсутствует ограничение xyz, я вручную добавляю его в тег экспорта maven-bundle-plugin. - person DeLac; 02.07.2013
comment
Да, это проблема. Не делай этого! - person Neil Bartlett; 02.07.2013
comment
и так... Что мне делать? Мне нужен в коде пакет x.y.z, он тоже есть в сгенерированном jar, но при старте бандла выдает ошибку missing limited x.y.z - person DeLac; 02.07.2013
comment
Если бы я знал, что такое x.y.z, я мог бы помочь вам найти пакет, который его экспортирует. - person Neil Bartlett; 03.07.2013
comment
это com.eviware.soapui.config. Я обновил вопрос с этой информацией. - person DeLac; 03.07.2013