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 :

Comprendre la structure et le fonctionnement de Maven


Sujet :

Maven Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2012
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Comprendre la structure et le fonctionnement de Maven
    Bonjour,

    Je cherche à comprendre le fonctionnement de Maven

    Pour les étapes que j'ai suivies :
    1- j'ai installé Git.
    2- j'ai récupéré le code source du projet à partir du dépôt Git ( avec git clone ....).

    3- j'ai installé Maven.
    4- et enfin j'ai installé le package en local sur ma machine (mvn clean install).

    Je n'ai rien changé dans les fichiers pom et settings.xml.

    Est-ce que le projet est actuellement indépendant du dépôt original ou non?

    Sinon qu'est-ce que je dois modifier ?

    Merci d'avance pour votre aide.

  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
    qu'est-ce que tu entends par indépendant du dépôt original? Maven est en gros un outil qui va compiler et gérer les dépendances du projet. Le fait que ton projet soit sur git, svn ou disquettes ne le concerne pas.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2012
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Merci tchize
    Excusez-moi, je suis débutant en maven.

    indépendant du dépôt original = que j'ai le code source sur ma machine et même sans connexion je peux travailler!

    j'ai quelques questions si tu peux m'aider ?

    quelle est l'utilité de fichier settings.xml?
    quand il est appelé?
    quelle est la relation de ce fichier avec pom .XML?

    merci par avance.

  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
    Citation Envoyé par wafid Voir le message
    indépendant du dépôt original = que j'ai le code source sur ma machine et même sans connexion je peux travailler!
    dès que t'as fais ton git clone t'es indépendant. Après, pour être sûr que Maven fonctionne sans connexion (compilations, tests, etc) il faut passer Maven en offline:
    mvn dependency:go-offline

    Ensuite, une fois hors ligne, pour refaire des compilations, il faut rajouter le paramètre -O pour éviter qu'il tente de retélécharger et t'ennuie à attendre les timeout
    Citation Envoyé par wafid Voir le message
    quelle est l'utilité de fichier settings.xml?
    Donner la configuration globale de Maven. En général, pas besoin, la config de base de Maven suffit. On y met surtout des profils particuliers, des repository privés, des mots de passes et des proxy.

    Citation Envoyé par wafid Voir le message
    quand il est appelé?
    A chaque appel à maven
    Citation Envoyé par wafid Voir le message
    quelle est la relation de ce fichier avec pom .XML?
    C'est une configuration, donc cela aura, suivant les paramètres, une influence sur ton processus de compilation. Mais un projet bien fait ne dépends pas de ce settings.xml car il doit toujours être reproductible à l'identique, dans les guidelines de Maven.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2012
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Avec tchize maven est facile
    Merci tchize,

    en faite je travaille sur un projet xwiki "open source".
    j'ai récupéré le code source, mais j'ai quelques ambiguïtés sur la structure d'un projet maven.

    est-ce que je dois modifier la balise <url> de fichier settings.xml (repository privés) ?
    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
    20
    <settings>
     <profiles>
       <profile>
         <id>xwiki</id>
    
        <repositories>
           <repository>
             <id>xwiki-snapshots</id>
             <name>XWiki Nexus Snapshot Repository Proxy</name>
             <url>http://nexus.xwiki.org/nexus/content/groups/public-snapshots</url>
             <releases>
               <enabled>false</enabled>
             </releases>
             <snapshots>
               <enabled>true</enabled>
             </snapshots>
           </repository>
           <repository>
    ........
    .......

  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
    Ce que le projet te demande d'ajouter dans ton settings.xml, ce sont les urls de leur repository maven, contenant vraissemblablement des packages qu'on ne trouve pas nécessairement dans le repository public maven. Il n'y a pas de raison de changer les urls que le projet te demande de mettre dans le settings.xml. Je ne vois d'ailleurs pas avec quoi tu les changerais....

  7. #7
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2012
    Messages : 14
    Points : 10
    Points
    10
    Par défaut ça commence à devenir claire
    Donc, A le premier appel-----seulement---- de maven, il télécharge les packages indiqués dans le fichier settings.xml,
    il les mise dans le repository local, et a chaque nouvel appel il travaille sur les packages en local.

    les téléchargements à partir des urls de settings.xml se font au premier appel seulement.

  8. #8
    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
    Citation Envoyé par wafid Voir le message
    Donc, A le premier appel-----seulement---- de maven, il télécharge les packages indiqués dans le fichier settings.xml,
    dans le pom.xml, y a pas de package indiqué dans le settings.xml

    pour le reste:

    1) a chaque lancement de maven:
    -> il tente de télécharger ce qu'il n'a pas dans son cache local
    -> il tente de re-télécharger une fois par jour toutes dépendances marquées "snapshot"
    -> dans tout les cas ceci n'est limité qu'au packages nécessaires à l'appel. Si tu fais un compile, il ne téléchargera pas ce qui est en <scope>test</scope> par exemple


    2) mvn dependency:go-offline essaie de télécharger et d'identifier tout ce dont tu pourrais avoir besoin pour le projet

    3) mvn -O empêche maven de faire des tentatives de téléchargement (cf point 1.). du coup si il manque quelque chose en local, ce sera l'arrêt direct.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2012
    Messages : 14
    Points : 10
    Points
    10
    Par défaut déviation vers Gforge
    Pour un besoin de travail du groupe et de collaboration autour de ce projet,
    je veux le cloner dans Gforge de l'école.
    est-ce que cela possible sans modification dans la configuration maven et/ou dans les fichiers Pom des différents modules du projet?

  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
    Etant donné que maven ne se charge que de la compilation et des dépendances, et que gforge se charge de stocker le code source, je ne vois pas en quoi l'un influencerais l'autre.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2012
    Messages : 14
    Points : 10
    Points
    10
    Par défaut déviation vers IntelliJ idea
    avec IntelliJ idea 12, j'ai réussi à compiler le projet maven mais en négligeant les tests!http://www.developpez.net/forums/ima...icon_smile.gif

    et pour le stocker dans gforge, j'ai procédé à importer into subversion "url du projet dans gforge" MAIS :

    ce message d'erreur apparaît :
    http://www.developpez.net/forums/ima...ies/calim2.gif

    //********************
    Cannot import to svn: svn: E175002: timed out waiting for server
    svn: E175002: MERGE request failed on '/svn/projet'
    //***************************
    j'ai ajouté cette ligne au fichier /etc/profile :
    JAVA_OPTS="-Dsubgit.svn.readTimeout=120000 -Dsubgit.svn.connectTimeout=120000"

    (pour augmenter la lecture et connecter les valeurs de temporisation pour la connexion HTTP avec un serveur Subversion)

    mais rien à changer?http://www.developpez.net/forums/ima...n_rolleyes.gif

Discussions similaires

  1. [Toutes versions] Comprendre la Structure d'une adresse mail.
    Par JOHN14 dans le forum Outlook
    Réponses: 0
    Dernier message: 22/05/2014, 12h20
  2. Comprendre la structure d'un jeu
    Par Youille dans le forum Développement 2D, 3D et Jeux
    Réponses: 5
    Dernier message: 16/02/2012, 12h19
  3. Réponses: 13
    Dernier message: 09/01/2011, 23h33
  4. Structure conditionnelle ne fonctionne pas
    Par marsupilami34 dans le forum Langage
    Réponses: 2
    Dernier message: 28/09/2009, 16h49
  5. Réponses: 3
    Dernier message: 30/07/2008, 08h51

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