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 :

Configuration d'un repository distant dans le fichier settings.xml


Sujet :

Maven Java

  1. #1
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 130
    Points : 86
    Points
    86
    Par défaut Configuration d'un repository distant dans le fichier settings.xml
    Bonjour,

    J'arrive à effectuer un "mvn deploy" lorsque je configure le repository distant dans le fichier pom.xml de mon projet (+ la partie <server> dans le fichier settings.xml).

    Ce que je souhaite faire maintenant, c'est configurer le repository distant dans mon fichier "%MAVEN_HOME%/conf/settings.xml" au travers d'un profile et d'utiliser cette configuration lorsque je ferai un "mvn deploy" à partir de mon projet.

    Voici l'erreur que j'obtiens en effectuant un "mvn deploy" :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    [INFO] ------------------------------------------------------------------------
    [ERROR] BUILD ERROR
    [INFO] ------------------------------------------------------------------------
    [INFO] Failed to configure plugin parameters for: org.apache.maven.plugins:maven-deploy-plugin:2.3
     
    check that the following section of the pom.xml is present and correct:
     
    <distributionManagement>
      <!-- use the following if you re not using a snapshot version. -->
      <repository>
        <id>repo</id>
        <name>Repository Name</name>
        <url>scp://host/path/to/repo</url>
      </repository>
      <!-- use the following if you ARE using a snapshot version. -->
      <snapshotRepository>
        <id>repo</id>
        <name>Repository Name</name>
        <url>scp://host/path/to/repo</url>
      </snapshotRepository>
    </distributionManagement>
     
    Cause: Class 'org.apache.maven.artifact.repository.ArtifactRepository' cannot be instantiated
    [INFO] ------------------------------------------------------------------------
    [INFO] For more information, run Maven with the -e switch
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 2 seconds
    [INFO] Finished at: Thu Jun 28 09:35:29 CEST 2007
    [INFO] Final Memory: 7M/13M
    [INFO] ------------------------------------------------------------------------
    Je comprends l'erreur, alors j'ai fait un "mvn help:active-profiles" pour être certain que mon profile est pris en charge. Voici le résultat :

    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
    21
    22
    23
     
    [INFO] Scanning for projects...
    [INFO] Searching repository for plugin with prefix: 'help'.
    WAGON_VERSION: 1.0-beta-2
    [INFO] --------------------------------------------------------------------
    [INFO] Building Affichage
    [INFO]    task-segment: [help:active-profiles] (aggregator-style)
    [INFO] --------------------------------------------------------------------
    [INFO] [help:active-profiles]
    [INFO]
    Active Profiles for Project wallaby.utilitaire:Affichage:jar:1.0:
     
    The following profiles are active:
     
     - profile-perso (source: settings.xml)
     
    [INFO] --------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] --------------------------------------------------------------------
    [INFO] Total time: 1 second
    [INFO] Finished at: Thu Jun 28 09:47:51 CEST 2007
    [INFO] Final Memory: 3M/7M
    [INFO] --------------------------------------------------------------------
    Une copie de mon fichier 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     
      <modelVersion>4.0.0</modelVersion>
      <groupId>perso.utilitaire</groupId>
      <artifactId>Affichage</artifactId>
      <packaging>jar</packaging>
      <version>1.0</version>
      <name>Affichage</name>
      <url>http://maven.apache.org</url>
     
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
     
      <build>
          <extensions>
             <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-webdav</artifactId>
                <version>1.0-beta-2</version>
             </extension>
          </extensions>
       </build>
     
       </project>
    Et une copie de mon fichier %MAVEN_HOME%/conf/settings.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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    <settings>
     
        <localRepository>C:/monRepositoryLocal</localRepository>
     
        <proxies>
       		 <proxy>
    		      <id>optional</id>
    		      <active>true</active>
    		      <protocol>http</protocol>
    		      <username>xxx</username>
    		      <password>yyy</password>
    		      <host>zzz</host>
    		      <port>8080</port>
    		      <nonProxyHosts>localhost,127.0.0.1</nonProxyHosts>
        	 </proxy>
      	</proxies>
     
        <servers>
             <server>
    		      <id>monRepositoryDistant</id>
    		      <username>xxx</username>
        	      <password>yyy</password>
          	</server>
        </servers>
     
        <profiles>
     
        	<profile>
       	    	<id>profile-perso</id>
     
    		    <repositories>
    				<repository>
    					<id>monRepositoryDistant</id>
    					<name>Mon repository distant</name>
    					<url>dav:http://localhost/monRepositoryDistant</url>
    		    	</repository>
    		    </repositories>
    		</profile>
     
    	</profiles>
     
    	<activeProfiles>
        	<activeProfile>profile-perso</activeProfile>
    	</activeProfiles>
     
    </settings>
    J'ai également essayé la commande suivante pour m'assurer de la prise en charge du profile : "mvn -Pprofil-perso deploy"

    Mais l'erreur reste la même.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Points : 1 524
    Points
    1 524
    Par défaut
    Tu veux déployer avec webdav ou scp?

    Si ton repository est accessible par webdav, n'utilise pas dav:http://.... dans le repository de ton profile, mais uniquement http://... car pour la lecture, c'est une simple requete GET

  3. #3
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 130
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par evenisse
    Tu veux déployer avec webdav ou scp?

    Si ton repository est accessible par webdav, n'utilise pas dav:http://.... dans le repository de ton profile, mais uniquement http://... car pour la lecture, c'est une simple requete GET
    Je veux déployer avec webdav.

    Le problème c'est que http ne permet pas d'écrire ... mais juste de lire. Or moi ce que je veux c'est déployer (donc écrire) sur le serveur.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Points : 1 524
    Points
    1 524
    Par défaut
    C'est bien ce que j'avais compris.

    le tag repository est utilisé par maven pour faire le download des artifacts depuis le repository distant donc tu dois utilisé http comme protocol et non webdav

    le tag distributionManagement est utilisé par le plugin deploy pour faire les upload et là, tu dois utiliser dav:http://... (pas scp )

  5. #5
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 130
    Points : 86
    Points
    86
    Par défaut
    Ok je ne connaissais pas cette différence entre les tags repository et distributionManagement.

    Je n'ai pas encore pu effectué de nouveaux tests mais il me semble que le tag distributionManagement est utilisable uniquement dans un fichier pom.xml et non pas dans le fichier settings.xml.

    Est-ce que ceci voudrait dire qu'il est impossible de paramètrer un repository pour effectuer des upload dans le fichier settings.xml ?

  6. #6
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 130
    Points : 86
    Points
    86
    Par défaut
    C'est bien ce que je pensais.

    D'après la xsd suivante : http://maven.apache.org/xsd/settings-1.0.0.xsd, il n'y a pas possibilité de définir un tag <distributionManagement> dans le fichier settings.xml.

    Bien que la documentation qui suit mentionne de le faire : http://www.sonatype.com/book/repository.html

    Quelqu'un a-t-il d'autres infos à ce sujet ?

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 172
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Points : 1 524
    Points
    1 524
    Par défaut
    Il n'est pas possible de définir le distributionManagement dans le settings, à moins que ce le soit dans la 2.1 qui est en cours de dev, mais j'en doute en tout cas, je ne le vois pas dans le code.

  8. #8
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 130
    Points : 86
    Points
    86
    Par défaut
    Ok, ça confirme donc ce que j'avais pensé ...

    Ben pas d'problème on se débrouillera autrement.

    Merci pour les commentaires !

  9. #9
    Membre habitué Avatar de marcxa44
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 202
    Points : 142
    Points
    142
    Par défaut
    je voulais juste savoir si t'avais réussi a configurer ton repository distant?
    Xav

  10. #10
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 130
    Points : 86
    Points
    86
    Par défaut
    oui j'ai réussi mais en mettant le paramétrage dans le fichier pom.xml et non pas dans le fichier settingx.xml.

  11. #11
    Membre habitué Avatar de marcxa44
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 202
    Points : 142
    Points
    142
    Par défaut
    si tu peux me montrer les paramétrages que tu as du faire pour ton repository ca m'interesserait beaucoup.
    Merci d'avance.
    Xav

  12. #12
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 130
    Points : 86
    Points
    86
    Par défaut
    la je ne suis pas à mon bureau mais si tu reposte un message lundi je te réponds sans faute, je recevrai la notification par mail ...

    a+

  13. #13
    Membre habitué Avatar de marcxa44
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 202
    Points : 142
    Points
    142
    Par défaut
    salut,
    comme convenu je reposte un message pour savoir si tu peux me montrer les paramétrages que tu as du faire pour ton repository.
    Merci d'avance.
    Xav

  14. #14
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 130
    Points : 86
    Points
    86
    Par défaut
    Hello,

    Alors voici mes différents fichiers :

    le fichier settings.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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <settings>
     
      <proxies>
     
        <proxy>
          <id>optional</id>
          <active>true</active>
          <protocol>http</protocol>
          <username>xxx</username>
          <password>yyy</password>
          <host>addressProxy</host>
          <port>8080</port>
          <nonProxyHosts>localhost,127.0.0.1</nonProxyHosts>
        </proxy>
      </proxies>
     
      <servers>
          <server>
    	      <id>repositoryDistant</id>
    	      <username>xxx</username>
              <password>yyy</password>
          </server>
     
      <profiles>
          <profile>
              <repositories>
    	          <repository>
    				  <id>repositoryDistant</id>
    				  <name>Repository d'entreprise</name>
    				  <url>http://localhost/repositoryDistant</url>
    	      	  </repository>
    	      </repositories>  
          </profile>
     
      </profiles>
     
       <activeProfiles>
        <activeProfile>profile-perso</activeProfile>
      </activeProfiles>
     
    </settings>
    et le fichier 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     
      <modelVersion>4.0.0</modelVersion>
      <groupId>mesProjets</groupId>
      <artifactId>projetTest</artifactId>
      <version>1.0-SNAPSHOT</version>
      <name>Mon premier projet Maven</name>
      <url>http://maven.apache.org</url>
     
      <build>
          <extensions>
             <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-webdav</artifactId>
                <version>1.0-beta-2</version>
             </extension>
          </extensions>
       </build>
     
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
     
      <distributionManagement>
        <repository>
            <id>repositoryDistant</id>
            <name>Repository d'entreprise</name>
            <url>dav:http://localhost/repositoryDistant</url>
        </repository>
      </distributionManagement>	
     
    </project>
    Et voilà en espèrant que ça t'aidera .... si tu as des questions auquelles je peux répondre ce sera avec plaisir ...

    a+

  15. #15
    Membre habitué Avatar de marcxa44
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 202
    Points : 142
    Points
    142
    Par défaut
    je te remercie beaucoup
    Xav

  16. #16
    Membre habitué Avatar de marcxa44
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 202
    Points : 142
    Points
    142
    Par défaut
    si j'ai bien compris, avec ton repository distant,
    lorsque tu lance une commande maven il va télécharger les fichiers sur ton repository distant et les installe sur ton poste en local.
    Est-ce bien ca?
    Xav

  17. #17
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 130
    Points : 86
    Points
    86
    Par défaut
    Non pas exactement.

    Lorsque Maven ne trouve pas une ressource dans mon repository local, il regarde en premier dans mon repository distant, puis si il ne la trouve toujours pas il va dans "ses" repository à lui et il télécharge directement les ressource dans mon repository local.

    Pour faire ce que tu dis je penses qu'il faut utiliser des miroirs, mais ça je ne l'ai jamais fait.

  18. #18
    Membre habitué Avatar de marcxa44
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 202
    Points : 142
    Points
    142
    Par défaut
    ok je te remercie
    Xav

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/07/2010, 11h42
  2. L'uri ne peut être résolu dans le fichier web.xml
    Par k-eisti dans le forum Struts 1
    Réponses: 13
    Dernier message: 29/09/2007, 15h34
  3. Configurer des paramétres dans le fichier server.xml
    Par root76 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 13/02/2007, 17h16
  4. Erreur d'évaluation (parse) dans le fichier web.xml de l'application
    Par popinenhbourg dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 15/05/2006, 15h38
  5. [Servlet] Erreur dans le fichier web.xml
    Par Crazyblinkgirl dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 05/07/2004, 15h20

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