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 :

Repository will be blacklisted


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 15
    Par défaut Repository will be blacklisted
    Bonjour,

    La configuration de ma chaine d'intégration continue est la suivante : Maven / Hudson / Nexus.

    J'utilise le plugin jspc-maven-plugin pour compiler les jsp. Dans le POM, je n'ai pas défini la version du plugin. J'ai ajouté ce qui suit dans le fichier ./m2/settings.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      <pluginRepositories>
        <pluginRepository>
          <id>codehaus1</id>
          <name>codehaus1</name>
          <url>http://snapshots.repository.codehaus.org</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>     
        </pluginRepository>
    Parfois, la construction échoue, j'obtiens l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [INFO] artifact org.codehaus.cargo:cargo-maven2-plugin: checking for updates from codehaus1
    [WARNING] repository metadata for: 'artifact org.codehaus.cargo:cargo-maven2-plugin' could not be retrieved from repository: codehaus1 due to an error: Error transferring file
    [INFO] Repository 'codehaus1' will be blacklisted
    ------------------------------------------------------------------------
    [ERROR] BUILD ERROR
    [INFO] ------------------------------------------------------------------------
    [INFO] The plugin 'org.codehaus.cargo:cargo-maven2-plugin' does not exist or no valid version could be found
    Je m'étonne que la construction échoue vu que j'utilise Nexus. Je pensais que le fait d'utiliser un proxy me permettait de construire l'application même si le site distant était inaccessible (vu que j'ai une copie de l'artefact dans le référentiel d'entreprise).
    Ceci est-il dû au fait que je pointe sur des snapshots ?

    Merci.

    Rémy

  2. #2
    Membre chevronné

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

    Difficile de répondre sans plus d'informations.
    Vers quelle(s) url(s) maven 2 tente de retrouver ton plugin ?

    Voilà tout de même une piste : est-ce que tu as bien mis un noeud mirror pour le repository ayant l'id codehaus1 afin de pointer sur ton Nexus dans ton settings.xml ?

    Autre remarque, j'éviterai de mettre la section pluginRepositories dans le settings.xml pour des questions de reproductibilité (trop lié à la machine). Il vaut mieux le mettre dans le pom du projet (ou un pom corporate...).

    Rémy

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 15
    Par défaut
    Bonjour,

    Merci pour cette piste. Je crois que je me suis un peu emmêlé les pinceaux dans le constitution de mon settings.xml. Le problème doit venir de là. Je vais revoir tout cela.

    Pour information dans le settings.xml j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <mirror>      
      <id>NexusCentral</id>      
      <name>NexusCentral</name>      
      <url>http://xxxx:8082/nexus/content/repositories/central/</url>
      <mirrorOf>central</mirrorOf>    
    </mirror>    
    <mirror>      
      <id>ibiblio.org</id>      
      <url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url>      
      <mirrorOf>central</mirrorOf>      
      <!-- United States, North Carolina -->    
    </mirror>
    Les repositories dont je parlais dans mon post précédent sont référencés dans la balise <profile>.

    Nexus ne doit pas jouer le rôle de proxy pour les artefacts que je récupère chez codehauss. Il faut que je relise la documentation du settings.xml

    Merci.

    Rémy

  4. #4
    Membre chevronné

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

    Je ne suis pas sûr que tu utilises bien ton proxy maven 2.

    Tu devrais configurer nexus afin d'avoir tes propres repositories pour tes artéfacts ainsi que des respositories de type proxy pour les respositories publics tels que repo1, codehaus...

    Ensuite tu peux faire un groupe qui rassemble tes repositories de type release. Dans ton settings.xml tu renvoies vers cette url
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <mirror>      
      <id>nexus</id>      
      <name>Corporate maven 2 proxy</name>      
      <url>http://xxxx:8082/nexus/content/repositories/...</url>
      <mirrorOf>central</mirrorOf>    
    </mirror>
    Rémy

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par Rémy29 Voir le message
    Je m'étonne que la construction échoue vu que j'utilise Nexus. Je pensais que le fait d'utiliser un proxy me permettait de construire l'application même si le site distant était inaccessible (vu que j'ai une copie de l'artefact dans le référentiel d'entreprise).
    Ceci est-il dû au fait que je pointe sur des snapshots ?

    Merci.

    Rémy
    CEci est du au fait que tu ne pointe par sur ton proxy:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      <pluginRepositories>
        <pluginRepository>
          <id>codehaus1</id>
          <name>codehaus1</name>
          <url>http://snapshots.repository.codehaus.org</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>     
        </pluginRepository>
    clairement tu as demander à maven d'accéder directement à codehaus. Il faut remplacer ca par l'adresse de ton proxy.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 15
    Par défaut
    Bonjour,

    Merci beaucoup. Je pense m'en être sorti, je vois l'artefact jspc-maven-plugin désormais dans nexus (dans le repository Codehaus Snapshots).

    Voici le contenu de mon settings.xml

    Dans la section <mirrors>
    - mirror pour central
    - mirror pour codehaus-snapshots

    Dans la section <profiles>
    - repository pour mes releases 'maison'
    - repository pour mes snapshots 'maison'
    - repository (id=codehaus-snapshots) pour http://snapshots.repository.codehaus.org/
    - pluginRepository (id=codehaus-snapshots) pour http://snapshots.repository.codehaus.org/

    Avec cette configuration je devrais pouvoir construire mon application en étant coupé du monde. Il faut que je trouve un moyen de le tester.

    Par contre tchize, le comportement semble identique si j'indique dans la section <repository> et <pluginRepository> une URL vers http://snapshots.repository.codehaus.org/ ou vers http://neptune:8082/nexus/content/re...aus-snapshots/. Ma configuration ne doit pas être encore parfaite. Je vais creuser un peu pour comprendre ceci.

    Merci.

    Rémy

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 15
    Par défaut
    Bonjour,

    J'ai à nouveau changé ma configuration.

    J'ai défini un seul mirroir pour central. J'ai défini dans l'élément <profile>, un <repository> et un <pluginRepository> pointant vers l'url http://xxxx:8082/nexus/content/repos...aus-snapshots/. Lorsque je lance un build, l'artefact est bien téléchargé dans Nexus, et dans mon référentiel local. Je vois bien dans la console qu'il le télécharge à partir de Nexus. Je suppose donc que si le lien est coupé avec l'extérieur cela va continuer à fonctionner.

    J'ai un peu de mal à comprendre toutes les subtilités. Voici ce que je pense avoir compris.

    Dans le super POM, dont mes projets héritent, un élément <repository> est déclaré pour central. Je défini dans le fichier settings.xml un mirroir pour central afin de dire à Maven de rechercher en priorité dans Nexus. Qui lui se chargera de télécharger l'artefact à partir du référentiel central s'il n'est pas présent dans Nexus (paramétrage Nexus).
    Pour codehaus, j'ai donc deux solutions. Soit définir un <repository> et un <pluginRepository> pointant sur Nexus qui lui... Soit définir un <repository> et un <pluginRepository> pointant sur le référentiel codehaus et définir un élément <mirror> pour codehauss pointant sur Nexus.

    Ai-je bien compris ? Si oui qu'elle est la meilleure solution (s'il y en a une).

    Merci.

    Rémy.

  8. #8
    Membre chevronné

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

    Le mirror (dans le settings.xml) joue comme une ré-écriture d'url pour le repository.

    Donc si tu as un repository de déclaré dans ton pom.xml avec l'id idRepo et que tu as un mirror dans le settings.xml avec le même id idRepo alors maven 2 prendra l'url qui est défini dans le mirror.

    Par contre, si tu n'as pas de mirror pour l'id idRepo alors maven 2 prendra l'url défini dans ton pom.xml.

    Cela permet de faire pointer sur des urls différentes suivants le contexte de ta machine (dans l'entreprise ou en dehors). Néanmoins, il y a des limitations, par exemple dès que tu utilises des respositories d'entreprises qui ne sont disponibles que via le réseau de ton entreprise. Dans ce cas, ton build ne fonctionnera plus en dehors de ton réseau d'entreprise dès qu'il aura besoin d'accéder à des artéfacts sur ces repositories d'entreprise.

    Rémy

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/02/2006, 03h13
  2. Gestion de repository avec Subversion
    Par GLDavid dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 24/01/2006, 10h13
  3. [DeveloperSuite10g] Pb installation Repository
    Par heffer69 dans le forum Designer
    Réponses: 3
    Dernier message: 01/07/2005, 18h35
  4. Compilé blacklists pour squidguard
    Par greg49 dans le forum Applications et environnements graphiques
    Réponses: 7
    Dernier message: 16/06/2005, 15h48
  5. [repository] [plug in]
    Par scape dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 24/08/2004, 14h05

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