IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Maven Java Discussion :

Migration d'un dynamic web project vers Maven 2


Sujet :

Maven Java

  1. #1
    Membre régulier
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    171
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 171
    Points : 78
    Points
    78
    Par défaut Migration d'un dynamic web project vers Maven 2
    Bonjour,

    Je souhaiterai passer un projet sous Maven 2. Actuellement je développe une application web (Hibernate, Spring, Struts2, Glassfish, ...) et il est demandé que ce projet utilise Maven.

    Le problème c'est que je découvre Maven, donc je ne suis pas un expert. Je voulais savoir s'il valait mieux démarer un nouveau projet Maven 2 et y ajouter les fichier de mon projet ou garder mon projet adapter Maven 2 à la structure de mon projet ?

    Cordialement,
    Nicolas

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    je suis pour la deuxième option.

    tu crée un pom
    tu le configure pour que les folders correspondent à ton projet
    tu ajoute les depdency
    tu compile.

    T'aura au moins l'avantage de ne pas foutre le bordel dans le cvs/svn/autre et d'avoir pendant le travail toujours uin projet qui compile (sur l'ancienne base que ce soit du ant ou un script custom)

  3. #3
    Membre régulier
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    171
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 171
    Points : 78
    Points
    78
    Par défaut
    J'ai ajouté les dépendances en allant les chercher sur le site http://mvnrepository.com/. Pour chaque jar de mon dossier lib, je créé une dépendance dans le pom.xml.

    Par contre, lorsque je lance la commande mvn compile il y a certains artefacts qu'il n'a pas trouvé. J'en déduit qu'il n'arrive pas à les télécharger.

    Maven me propose la solution de les ajouter en utilisant par exemple mvn install:install-file. Je voudrai éviter d'avoir à faire ça pour faciliter la maintenance.

    Y a-t-il un moyen pour dire dans le pom.xml qu'une dépendance est dans le dossier lib de mon application ?

    Cordialement,
    Nicolas

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    non, les dépendances sont à charger sur un repository, pas en local (ce serait contraire au principe de fonctionnement de maven). Si tu n'arrive pas à les télécharger c'est probablement qu'elles sont sur un autre repository que celui "standard". Il existe plusieurs repository courrament utilisés (jboss, apache), il faut les ajouter dans ta liste de repository, que tu enregistre dans le pom.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
            <repositories>
                    <repository>
                            <id>prime-repo</id>
                            <name>Prime Technology Maven Repository</name>
                            <url>http://repository.prime.com.tr/</url>
                            <layout>default</layout>
                    </repository>
                    <repository>
                            <id>releases</id>
                            <name>Managed Release Repository</name>
                            <url>http://serveur.prive/archiva/repository/releases/</url>
                            <releases>
                                    <enabled>true</enabled>
                            </releases>
                            <snapshots>
                                    <enabled>false</enabled>
                            </snapshots>
                    </repository>
    .....

  5. #5
    Membre régulier
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    171
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 171
    Points : 78
    Points
    78
    Par défaut
    Ah c'est bon à savoir en effet, merci. Mais si je comprends bien Maven ne télécharge pas les jar qui sont dans mon dossier lib lors d'un mvn compile ?

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    maven télécharge les dépendances depuis le repository distant, les stocke dans un cache local et les utilise de là. Ton dossier lib, quand ta migration sera fini, tu pourra le virer, il ne sera plus nécessaire.

  7. #7
    Membre régulier
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    171
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 171
    Points : 78
    Points
    78
    Par défaut
    D'accord. Ma gestion des dépendances est configurée.
    - mvn validate me retourne BUILD SUCCESSFUL
    - mvn compile me retourne BUILD SUCCESSFUL
    Par contre mvn package retourne une erreur : il ne trouve pas le fichier web.xml.

    Voici ma déclaration des répertoires :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <resources>
      	<resource>
      		<directory>src/com/infotel/RMPTool</directory>
      	</resource>
      	<resource>
      		<directory>src/ressources</directory>
      	</resource>
      	<resource>
      		<directory>WebContent/WEB-INF</directory>
      		<includes>
      			<include>./web.xml</include>
      		</includes>
      	</resource>
    </resources>
    J'essaye plusieurs syntaxes mais rien n'y fait. savez vous d'où ça peut venir ?

    Nicolas

  8. #8
    Membre régulier
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    171
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 171
    Points : 78
    Points
    78
    Par défaut
    Ah non en fait il ne faut pas l'ajouter dans ressources mais dans la sections plugins préciser où se situe le web.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <plugin>
    			<groupId>org.apache.maven.plugins</groupId>
    			<artifactId>maven-war-plugin</artifactId>
    			<configuration>
    				<webXml>WebContent/WEB-INF/web.xml</webXml>
    			</configuration>
    </plugin>

  9. #9
    Membre régulier
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    171
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 171
    Points : 78
    Points
    78
    Par défaut
    Par contre dans mon dossier WebContent j'ai des pages jsp, javascript, ... qu'il n'inclue pas dans le war. J'ai du oublier quelque chose dans le pom.xml ...

    Savez vous d'où ça vient ?

    Nicolas

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    remplace l'entrée webxml par ceci, ça devrait faire l'affaire (il devrait trouver au passage le web.xml dedans )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.0</version>
            <configuration>
              <warSourceDirectory>WebContent/</warSourceDirectory>
            </configuration>
          </plugin>
        </plugins>
      </build>

  11. #11
    Membre régulier
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    171
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 171
    Points : 78
    Points
    78
    Par défaut
    Ca marche. J'arrive à avoir une bonne structure pour mon war.

    Par contre en ce qui concerne le dossier lib/ tu m'as dit qu'avec maven je pourrai supprimer ce dossier de mon projet.
    Le problème c'est que ma société a développé un framework. Mon application ne peut pas fonctionner sans ce framework. J'ai lu sur internet qu'il était possible d'ajouter un jar en utilisant une commande (mvn install:install).
    Mais j'aimerai éviter que l'utilisateur soit obligé de taper la commande pour ajouter le jar au cache local de maven.

    Existe-t-il un moyen de le spécifier dans le pom.xml ? Je sais pas si mes explications sont claires ...

  12. #12
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    si ta société publie le framework, le plus simple est de mettre en place un repository où le framework pourra être trouvé. Ce repository pourrait au final contenir aussi l'application . Au final on resterait dans la logique de maven. Si tu ne veux pas publier l'artifact concerné, alors il ne restera pas d'autre solution de lui demander de tapper une commande mvn install particulière avant.

    Le plus simple évidement serait de fournir les deux projet (war et framework) en sources maven. L'utilisateur fera un mvn install sur le framework puis un mvn install sur le war

  13. #13
    Membre régulier
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    171
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 171
    Points : 78
    Points
    78
    Par défaut
    Ok d'accord. Merci pour ton aide tchize. J'ai une meilleure vision du pom.xml maintenant.

    @pluch,
    Nicolas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Maven + Struts2 + Eclipse + Dynamic Web Project
    Par JakeLate dans le forum Maven
    Réponses: 3
    Dernier message: 29/12/2012, 08h10
  2. Convertir un projet Maven en un Dynamic Web project
    Par rockley dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 08/03/2012, 18h45
  3. [WTP] Dynamic web project Eclipse 3.1 Apache5.5
    Par mschoum dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 22/02/2006, 19h52
  4. [j2ee] Eclipse + Dynamic Web Project
    Par Jorus dans le forum Eclipse Java
    Réponses: 9
    Dernier message: 10/10/2005, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo