Как автоматически развернуть зависимости Maven в JBoss в виде пакетов OSGI?
У меня есть проект, который развертывает автономное приложение Apache ServiceMix OSG. Он имеет множество зависимостей, и он построен с Maven. Теперь я хочу развернуть это приложение в JBoss AS. Я нашел интересный плагин Maven под названием jboss-as-maven-plugin
(org.jboss.as.plugins
) развернуть что-нибудь. я использую maven-bundle-plugin
(org.apache.felix
) для создания моих пакетов, и все работает нормально, но когда я развертываю пакеты проектов, развертывание завершается неудачно, потому что зависимости не удовлетворяются.
Как я могу автоматически связать и развернуть все дерево зависимостей с целью Maven? Является ли это возможным? Мой проект имеет десятки зависимостей, объявленных на pom.xml
и некоторые из них - другие проекты в моей рабочей области.
3 ответа
В настоящее время единственное решение, которое я знаю, это функции Карафа. Вы можете создать файл функций из ваших зависимостей POM.
Я обнаружил, что jboss поддерживает подсистемы. Это может помочь указать пакеты, необходимые для запуска вашего приложения. Это не похоже на спецификацию подсистемы OSGi, но для jboss это может уже помочь. Для OSGi spec 5 есть стандартизированная спецификация подсистемы, которая может обеспечить стандартный способ сделать это для контейнеров.
Если jboss поддерживает OBR (OSGi-репозиторий), вы можете ограничить количество зависимостей, которые вы должны указать.
Если ваше приложение не использует OSGi, вы можете подумать о том, чтобы упаковать свое приложение как WAR, которое можно развернуть в JBoss.
Затем вам потребуется использовать web.xml для начальной загрузки вашего приложения, например, с использованием XML-файла Spring.
Здесь есть пример Camel в качестве WAR: http://camel.apache.org/servlet-tomcat-example.html
Вы можете автоматически установить ваши пакеты с помощью плагина org.apache.sling.
<plugin>
<groupId>org.apache.sling</groupId>
<artifactId>maven-sling-plugin</artifactId>
<executions>
<execution>
<id>install-bundle</id>
<goals>
<goal>install</goal>
</goals>
</execution>
</executions>
<configuration>
<slingUrl>http://localhost:8181/system/console/install</slingUrl>
<user>karaf</user>
<password>karaf</password>
</configuration>
</plugin>
вы можете найти подробный pom.xml на веб-сайте Adobe: https://docs.adobe.com/docs/en/cq/5-6-1/developing/developmenttools/how-to-build-aem-projects-using-apache-maven.html
или http://www.cqblueprints.com/tipsandtricks/build-and-deploy-osgi/build-deploy-osgi-1.html