2015-03-15 6 views
0

Я просто изучаю OSGi, предохранитель JBoss (6.1) и Karaf. Как я могу использовать стандартные (не расслоенные) зависимости Maven без их изменения?JBoss Fuse против стандартной зависимости Maven

У меня есть простой проект связки Maven. Это зависит от некоторых сторонних библиотек. Он использует их через свой файл blueprint.xml. Я понимаю, что если manifest.mf маркирует пакеты в записи Import-Package, тогда в его manifest.mf должен быть установлен пакет с Export-Package. В моем случае, если я установлю эти стандартные проекты Maven, они не будут экспортировать необходимые пакеты. Поэтому во время установки у меня появилось сообщение об ошибке «Unresolved constraint in bundle». Может ли плагин Maven Bundle или Shade решить эту проблему? Или, если они не могут быть самым изящным способом разрешения зависимостей?

Где-то я читал, что Jboss Fuse может разрешать зависимости из репозитория Maven. Могу ли я каким-то образом использовать этот механизм?

Спасибо!

ответ

0

В то же время я нашел почти хорошее решение: с wrap: имен/Приставка Предохранитель автоматически генерирует пакет во время установки:

osgi:install -s wrap:mvn:cglib/cglib/2.2.2 

Но я до сих пор установить каждую зависимость вручную. Есть ли способ автоматизировать установку зависимостей?

Thx!

0

Используйте заголовок манифеста Bundle-ClassPath. Убедитесь, что все ваши зависимости maven доступны в финальном файле jar под одним каталогом «lib». (Этого можно достичь с помощью плагина ресурсов maven, который копирует зависимости maven в любом выходном каталоге).

Используйте maven-bundle-plugin и настройте атрибут bundle manifest Bundle-ClassPath с его элементом. Добавьте путь к папке lib, чтобы все простые банки ванили были доступны как часть пути класса bundle.

0

Это может быть немного поздно, но вы можете сделать это с помощью функций.

<features> 
    <feature name="wrap_features" version="1.0"> 
     <bundle>mvn:org.apache.commons/com.springsource.org.apache.commons.logging/1.1.1</bundle> 
     <bundle>wrap:mvn:org.jdbi/jdbi/2.70</bundle> 
     <bundle>wrap:mvn:com.microsoft/sqljdbc4/4.2</bundle> 
     <bundle>wrap:mvn:org.springframework/spring-web/4.2.4.RELEASE</bundle> 
     <bundle>wrap:mvn:org.springframework.security/spring-security-core/4.0.3.RELEASE</bundle> 
     <bundle>mvn:com.doi.ws/mssql-fragment/1.0.0</bundle> 
     <bundle>mvn:com.doi.ws/mssql-impl/1.0.0</bundle> 
     <bundle>mvn:com.doi.ws/doi-services/1.0</bundle> 
    </feature> 
</features> 

Вы устанавливаете возможности перед развертыванием проекта на сервер предохранителей с помощью функции команды

Смежные вопросы