2013-02-19 2 views
1

У меня есть проект, который развертывает автономное приложение OSG Apache ServiceMix. Он имеет множество зависимостей, и он построен с Maven. Теперь я хочу развернуть это приложение в JBoss AS. Я нашел интересный плагин Maven под названием jboss-as-maven-plugin (org.jboss.as.plugins), чтобы развернуть что угодно. Я использую maven-bundle-plugin (org.apache.felix), чтобы построить мои пакеты, и он отлично работает, но когда я развертываю пакеты проектов, развертывание не выполняется, потому что зависимости не выполняются.как развернуть зависимости Maven автоматически в JBoss как пакеты OSGI?

Как я могу автоматически связать и развернуть все дерево зависимостей с целью Maven? Является ли это возможным? Мой проект содержит десятки зависимостей, объявленных на pom.xml, а некоторые из них - другие проекты в моей рабочей области.

+0

@Lucas Tycho не имеет отношения к этому вопросу. –

ответ

1

В настоящее время единственным решением, которое я знаю, являются функции Karaf. Вы можете create a feature file out of your pom dependencies.

Я обнаружил, что jboss поддерживает subsystems. Это может помочь определить пакеты, необходимые для запуска вашего приложения. Это не похоже на спецификацию подсистемы OSGi, но для jboss это уже может помочь. Для спецификации OSGi 5 существует стандартизованная спецификация подсистемы, которая может обеспечить стандартный способ сделать это через контейнеры.

Если jboss поддерживает OBR (репозиторий пакетов OSGi), вы можете ограничить количество зависимостей, которые вы должны указать.

+0

Я использовал подтипы JBoss, но я не достиг своей цели, используя это, как показано в выпуске JBoss 7.1 (https://issues.jboss.org/browse/AS7-5544), см. Мой последний комментарий. Karaf - это сама зависимость, потому что я не смог создать хорошо сконфигурированный экземпляр внутри JBoss. У меня много проблем для достижения моей цели: - ((спасибо, я продолжаю пытаться! – logoff

+0

Не лучше ли было бы использовать Karaf в качестве сервера вместо JBoss? –

+0

это требование для развертывания нашего приложения в JBoss Мы должны поддерживать как автономные Apache ServiceMix (с Apache Karaf), так и развертывание JBoss. – logoff

0

Если ваше приложение не использует OSGi для каждого изображения, вы можете рассмотреть возможность упаковки своего приложения в качестве WAR, который можно развернуть в JBoss.

Затем вам нужно будет использовать web.xml для загрузки вашего приложения, например, используя файл Spring XML.

Существует пример Camel как WAR здесь: http://camel.apache.org/servlet-tomcat-example.html

+0

, очевидно, наше приложение использует OSGi, поэтому мы выбираем Apache ServiceMix (и Apache Felix as OSGi контейнер). наше приложение состоит из набора пакетов и функций OSGi. – logoff

+0

Да, хорошо, но вы можете развертывать в контейнере OSGi и НЕ использовать какие-либо службы OSGi, такие как реестр служебных программ osgi, или его службу администрирования config и т. Д.Если вы не используете это приложение, вы можете развернуть приложение в контейнерах, отличных от OSGi. –

+0

наше приложение использует реестр служб. на самом деле наше приложение интенсивно использует службы OSGi. – logoff

0

Вы можете AutoInstall свои пакеты с 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

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