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 :

Création d'un repository distant


Sujet :

Maven Java

  1. #1
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 130
    Par défaut Création d'un repository distant
    Bonjour,

    Je souhaiterais créer un repository distant qui me permettrait d'ajouter mes jar créer à l'aide de Maven.

    J'ai créé un projet Maven tout simple qui ne comporte qu'une seule classe. La compilation avec "mvn compile" fonctionne sans problème. L'installation du jar dans mon repository local avec la commande "mvn install" fonctionne également.

    Maintenant, je souhaiterais effectuer un "mvn deploy" pour que mon jar soit installé sur le repository distant.

    Lorsque j'effectue cette commande, voilà le message d'erreur que j'obtiens :
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
     
    [INFO] Scanning for projects...
    WAGON_VERSION: 1.0-beta-2
    [INFO] ----------------------------------------------------------------------------
    [INFO] Building Affichage
    [INFO]    task-segment: [deploy]
    [INFO] ----------------------------------------------------------------------------
    [INFO] [resources:resources]
    [INFO] Using default encoding to copy filtered resources.
    [INFO] [compiler:compile]
    [INFO] Nothing to compile - all classes are up to date
    [INFO] [resources:testResources]
    [INFO] Using default encoding to copy filtered resources.
    [INFO] [compiler:testCompile]
    [INFO] Nothing to compile - all classes are up to date
    [INFO] [surefire:test]
    [INFO] No tests to run.
    [INFO] [jar:jar]
    [INFO] Building jar: D:\enCours\java\Affichage\target\Affichage-1.0.jar
    [INFO] [install:install]
    [INFO] Installing D:\enCours\java\Affichage\target\Affichage-1.0.jar to C:\Java\repositoryMaven\wallaby\utilita
    ire\Affichage\1.0\Affichage-1.0.jar
    [INFO] [deploy:deploy]
    altDeploymentRepository = null
    [INFO] ------------------------------------------------------------------------
    [ERROR] FATAL ERROR
    [INFO] ------------------------------------------------------------------------
    [INFO] id is null
    [INFO] ------------------------------------------------------------------------
    [INFO] Trace
    java.lang.IllegalArgumentException: id is null
            at org.apache.commons.httpclient.protocol.Protocol.getProtocol(Protocol.java:110)
            at org.apache.commons.httpclient.HostConfiguration.setHost(HostConfiguration.java:254)
            at org.apache.commons.httpclient.HostConfiguration.setHost(HostConfiguration.java:320)
            at org.apache.webdav.lib.WebdavSession.getSessionInstance(WebdavSession.java:149)
            at org.apache.webdav.lib.WebdavSession.getSessionInstance(WebdavSession.java:127)
            at org.apache.webdav.lib.WebdavResource.setClient(WebdavResource.java:1273)
            at org.apache.webdav.lib.WebdavResource.setHttpURL(WebdavResource.java:1298)
            at org.apache.webdav.lib.WebdavResource.setHttpURL(WebdavResource.java:1320)
            at org.apache.webdav.lib.WebdavResource.setHttpURL(WebdavResource.java:1408)
            at org.apache.webdav.lib.WebdavResource.<init>(WebdavResource.java:290)
            at org.apache.maven.wagon.providers.webdav.CorrectedWebdavResource.<init>(CorrectedWebdavResource.java:
    54)
            at org.apache.maven.wagon.providers.webdav.WebDavWagon.openConnection(WebDavWagon.java:143)
            at org.apache.maven.wagon.AbstractWagon.connect(AbstractWagon.java:143)
            at org.apache.maven.artifact.manager.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:235)
            at org.apache.maven.artifact.manager.DefaultWagonManager.putArtifact(DefaultWagonManager.java:153)
            at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:80)
            at org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:162)
            at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:443)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecuto
    r.java:480)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExe
    cutor.java:311)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.jav
    a:278)
            at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
            at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:334)
            at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:125)
            at org.apache.maven.cli.MavenCli.main(MavenCli.java:272)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
            at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
            at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
            at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 2 seconds
    [INFO] Finished at: Wed Jun 27 15:07:12 CEST 2007
    [INFO] Final Memory: 7M/13M
    [INFO] ------------------------------------------------------------------------
    Voici des extraits de mes fichiers de configuration :

    Fichier settings.xml (l'accès se fait pas webdav -> tout le monde peut tout faire même en tant qu'ANONYME)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <servers>
          <server>
    	      <id>repositoryDistant</id>
          </server>
    ....
    Fichier pom.xml de mon projet
    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
     
    <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>test.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>
     
      <distributionManagement>
        <repository>
            <id>repositoryDistant</id>
            <name>Repository du projet</name>
            <url>dav://localhost/repositoryDistant</url>
        </repository>
        <snapshotRepository>
            <id>repositoryDistant_snapshot</id>
            <name>Repository du projet snapshot</name>
            <url>dav://localhost/repositoryDistant/repositoryDistant_snapshot</url>
            <uniqueVersion>true</uniqueVersion>
        </snapshotRepository>
      </distributionManagement>
     
    </project>
    ça fait un petit moment que je suis là-dessus mais je ne vois pas ce qu'il me manque ...

    Merci de votre aide...

  2. #2
    Membre éclairé Avatar de DanielW33
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2006
    Messages : 327
    Par défaut
    Déja ton url n'est pas correcte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <url>dav:http://localhost/repositoryDistant/repositoryDistant_snapshot</url>

  3. #3
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 130
    Par défaut
    Eh ben il en fallait pas plus .... c'était effectivement mon URL qui n'était pas correcte !

    Merci bcp !

  4. #4
    Membre confirmé
    Profil pro
    Auditeur informatique
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Par défaut
    Salut

    Heuuuu petite question stupide

    Que signifie dav avant le http ? Y'a t-il d'autres acronymes qui peuvent prendre la place de dav ?

    Merci pour vos réponses

    Amicalement,
    Nico

  5. #5
    Membre Expert

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    voici quelques exemple d'URL:

    http://host:port/path => utilise le protocol http standard avec la méthode PUT
    dav:http://host:port/path => utilise webdav
    ftp://host:port/path => utilise ftp
    scp://host:port/path => utilise ssh en pure java
    scpexe://host:port/path => utilise ssh en ligne de commande
    scm:.... => utilise maven scm pour un déploiement dans un cvs, svn...
    file://path => copie de fichier en local

  6. #6
    Membre confirmé
    Profil pro
    Auditeur informatique
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Par défaut
    Merci pour ces précisions.

    Donc le choix se fait en fonction des caractéristiques du réseau. Pour ma part je dois déployer un jar sur le repository distant (il est pour l'instant sur mon repository local). Si j'accède à la machine via le http classique, je ne dois pas préfixer mon url dans ce cas ?

    Amicalement,
    Nico

  7. #7
    Membre Expert

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    Si ton serveur web authorise la méthode http PUT, tu peux l'utiliser, mais personnellement, je préfère utiliser du webdav

  8. #8
    Membre confirmé
    Profil pro
    Auditeur informatique
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Par défaut
    Et bien à vrai dire, je ne connais pas la méthode webdav..... mais je peux en effet essayer.....

    Et encore une petite question, je vois dans mon settings.xml que j'ai une repo et un repo snapshot. Quelle est la différence entre les deux ?

    Amicalement,
    Nico

  9. #9
    Membre Expert

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    Concernant webdav, si tu n'utilises pas d'outil tel qu'Archiva, mais un simple Apache, il te faudra ajouter le module Webdav et le configurer, de même pour pouvoir utiliser la méthode PUT

    Pour les repos, un repo non snapshot contient uniquemetn des artifacts releasés et un repo snapshot ne contient que des snapshots. En fonction de la version de la dépendance déclarée dans ton POM, maven ira sur l'un ou sur l'autre.

  10. #10
    Membre confirmé
    Profil pro
    Auditeur informatique
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Par défaut
    Ah oui,

    Ben du coup je vais faire du scp, ça doit marcher ça

    Amicalement,
    Nico

  11. #11
    Membre chevronné

    Inscrit en
    Septembre 2006
    Messages
    466
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 466
    Par défaut
    Bonjour,

    De notre côté on a des problèmes avec le protocoles scp pour une raison un peu étrange (cf. post sur la liste de diffusion maven-user).

    Nous essayons de passer à webdav mais on a encore des difficultés pour gérer les droits d'accès.

    Dans notre contexte, on a besoin de gérer des droits d'accès suivant des groupId différents. Pour schématiser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    .m2/repository
      |-com
         |-...
           |-project1 (droit d'accès pour un groupe particulier lié au projet)
           |-project2 (droit d'accès pour un autre groupe particulier lié au projet)
    On souhaite effectivement que chaque projet ne puisse faire un déploiement que sous son groupeId correspondant.

    On a un serveur apache devant notre proxy maven 2
    Quelqu'un sait-il comment configurer le module apache webdav pour faire cela ?

    Rémy

  12. #12
    Membre Expert

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172
    Par défaut
    il y a probablement d'autres moyens, mais le premier qui me vient est le suivant:

    Par projet ou groupe de projets, tu crées un virtual host dans apache auquel tu associe un répertoire webdav, ainsi tu peux configurer les droits comme tu le souhaites.

  13. #13
    Membre chevronné

    Inscrit en
    Septembre 2006
    Messages
    466
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 466
    Par défaut
    Merci Emmanuel pour ta proposition.

    Nous allons étudier cela en parallèle avec les fichiers .htaccess d'apache.
    Le problème que nous avons avec les fichiers .htaccess est qu'on n'arrive pas à créer de répertoires sous le répertoire correspondant au groupId des projets. Si nous créons les répertoires à l'avance tout fonctionne bien. Mais dans notre contexte, on ne connaît pas à l'avance les sous-répertoires des groupId des projets.

    Si on trouve une solution, je vous tiendrais au courant.

    Rémy

  14. #14
    Membre Expert

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 172

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

Discussions similaires

  1. Création d'un repository central
    Par Ho(c)ine. dans le forum Maven
    Réponses: 7
    Dernier message: 31/03/2009, 16h42
  2. [Utilisation] Conserver les dates de fichiers lors de la création d'un repository
    Par Invité dans le forum Subversion
    Réponses: 1
    Dernier message: 26/02/2008, 17h38
  3. Réponses: 17
    Dernier message: 09/07/2007, 14h28
  4. [Maven2]Détail de la création de repository distant
    Par arnobidul dans le forum Maven
    Réponses: 8
    Dernier message: 22/05/2007, 16h20
  5. Réponses: 5
    Dernier message: 06/04/2007, 10h26

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