2013-02-19 3 views
1

J'ai un projet qui déploie une application OSGí Apache ServiceMix autonome. Il a des tonnes de dépendances et il est construit avec Maven. Maintenant, je veux déployer cette application dans un JBoss AS. J'ai trouvé un plugin Maven intéressant appelé jboss-as-maven-plugin (org.jboss.as.plugins) pour déployer quoi que ce soit. J'utilise maven-bundle-plugin (org.apache.felix) pour construire mes bundles et cela fonctionne correctement, mais lorsque je déploie les bundles de projets, le déploiement échoue car les dépendances ne sont pas satisfaites.comment déployer automatiquement les dépendances Maven dans JBoss sous forme de bundles OSGI?

Comment puis-je regrouper et déployer automatiquement tous les arbres de dépendances avec un objectif Maven? C'est possible? Mon projet a des dizaines de dépendances déclarées sur le pom.xml et certains d'entre eux sont d'autres projets dans mon espace de travail.

+0

@Lucas Tycho est pas pertinente à cette question. –

Répondre

1

Actuellement, la seule solution à ce que je connais sont les caractéristiques de Karaf. Vous pouvez create a feature file out of your pom dependencies.

J'ai trouvé que jboss semble prendre en charge subsystems. Cela peut aider à spécifier les bundles requis pour exécuter votre application. Cela ne semble pas être la spécification du sous-système OSGi, mais pour jboss cela peut déjà aider. Pour la spécification OSGi 5, il y a la spécification de sous-système normalisée qui peut fournir un moyen standard de faire cela à travers les conteneurs.

Si jboss prend en charge l'OBR (référentiel de regroupement OSGi), vous pouvez limiter le nombre de dépendances que vous devez spécifier.

+0

J'ai utilisé des sous-systèmes de JBoss mais je n'ai pas atteint mon objectif en utilisant cela comme cela est montré dans un problème de JBoss 7.1 (https://issues.jboss.org/browse/AS7-5544), voir mon dernier commentaire. Karaf est une dépendance même parce que je n'ai pas réussi à avoir une instance bien configurée dans JBoss. J'ai beaucoup de problèmes pour réaliser mon objectif: - ((merci, je continue d'essayer! – logoff

+0

Ne serait-il pas mieux d'utiliser simplement Karaf comme serveur au lieu de JBoss? –

+0

c'est une exigence pour déployer notre application dans JBoss Nous devons prendre en charge Apache ServiceMix (avec Apache Karaf) et le déploiement de JBoss en mode autonome – logoff

0

Si votre application n'utilise pas OSGi, vous pouvez envisager d'emballer votre application sous forme de fichier WAR qui peut être déployé dans JBoss. Puis, vous devrez utiliser web.xml pour amorcer votre application, par exemple en utilisant un fichier Spring XML.

Il est un exemple de chameau comme une guerre ici: http://camel.apache.org/servlet-tomcat-example.html

+0

évidemment notre application utilise OSGi, c'est la raison pour laquelle nous choisissons Apache ServiceMix (et Apache Felix comme OSGi récipient). notre application consiste en un ensemble de bundles et fonctionnalités OSGi. – logoff

+0

Oui, mais vous pouvez déployer dans un conteneur OSGi et n'utiliser aucun service OSGi tel que le registre de service osgi ou son service d'administration de configuration, etc.Si vous ne l'utilisez pas, vous pouvez déployer votre application dans des conteneurs non OSGi. –

+0

notre application utilise le registre de service. en fait, notre application utilise intensivement les services OSGi. – logoff

0

Vous pouvez vos faisceaux avec auto-installation plugin 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> 

vous pouvez trouver pom.xml détaillée du site Web d'Adobe: https://docs.adobe.com/docs/en/cq/5-6-1/developing/developmenttools/how-to-build-aem-projects-using-apache-maven.html

ou http://www.cqblueprints.com/tipsandtricks/build-and-deploy-osgi/build-deploy-osgi-1.html

Questions connexes