2 votes

Projet Maven multi-module ne se déploie pas sur OpenShift (S2I)

Je travaille sur une application multi-module maven, qui se compose de deux modules :

  1. Commun
  2. Application Web

    -(root)pom
        -Commun
        -Application Web

Nous utilisons la console web OpenShift avec le déploiement S2I (source vers image). L'image que nous choisissons est Jboss Eap. Après avoir fourni le dépôt git, Openshift commence à créer les ressources requises. Il compile et installe avec succès nos modules en utilisant maven, cependant il ne les déploie pas dans le dossier autonome pour Jboss. En regardant le journal de construction, nous pouvons vérifier que toutes les dépendances sont récupérées et que la construction est un SUCCÈS à la fin du journal. Mais aucun artefact n'est déployé dans le dossier de l'image Jboss. Nous pouvons confirmer cela en regardant le journal ou en utilisant la console pour vérifier les fichiers du pod.

Ce projet se trouve sur Bitbucket

racine pom.xml

        4.0.0
        com.test.parent
        parent
        1.0.0-SNAPSHOT
        pom

        :: Parent ::
        POM parent pour une application

            Commun
            Application Web

Pom commune :

        4.0.0

            com.test.parent
            parent
            1.0.0-SNAPSHOT

        com.test.commune
        Commun
        1.0.0-SNAPSHOT
        jar

        Module commun
        Module pour les éléments communs entre les projets

            ${project.artifactId}

                    maven-compiler-plugin
                    3.3

                        1.8
                        1.8

            ...

Et enfin, le pom web :

        4.0.0

            com.test.parent
            parent
            1.0.0-SNAPSHOT

        com.test.external
        Application Web
        1.0-SNAPSHOT
        war

         Web
        Module Web

            UTF-8

            1.0.2.Final

            1.0.3.Final

            2.1.1

            1.8
            1.8

            ${project.artifactId}

                    maven-war-plugin
                    ${version.war.plugin}

                        src/main/webapp/WEB-INF/web.xml

            ...

                com.test.common
                Commun
                1.0.0-SNAPSHOT
                jar

Quelqu'un parvient-il à réaliser cela?

2voto

Nicholas Points 78

Je pense qu'il y a une meilleure façon de le faire, qui consiste à utiliser le profil openshift dans votre pom de site. Cela revient à la façon dont cela était fait en V2. Dans le profil openshift, qui sera invoqué lors de la construction, copiez le fichier .war dans le répertoire de déploiement. La seule différence que j'ai remarquée était que le répertoire de déploiement était nommé target au lieu de webapps, mais je n'ai fait aucun test détaillé car target semble fonctionner. Par exemple:

    openshift

          maven-war-plugin
          2.4

            target
            ROOT

0voto

Bruno Moreira Points 44

Je finis par utiliser maven-antrun-plugin pour copier le war dans le dossier autonome de JBoss.

        openshift

                /opt/eap/custom_modules
                ${java.home}/lib/security/cacerts

                    /src/webapp/resources
                    true

                    maven-antrun-plugin

                            install

                                run

                                    war copied to ${jboss.deploy.path}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X