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

Build Java Discussion :

Apache Ivy : repository ?


Sujet :

Build Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut Apache Ivy : repository ?
    Bonjour,

    Je suis en train de tester Apache Ivy car je suis pas fan de Maven et comme je gère tout via des tache Ant (compilation, doc, test, déploiement sur test et prod .....)
    je me dis qu'Ivy convient parfaitement car tout ce que je veux c'est ajouter une gestion des dépendances.

    et donc j'ai plusieurs questions :

    Donc j'aimerais savoir par défaut quel repository il prend par défaut ?
    car j'ai essayer d'ajouter la dépendance vers Hibernate (version 3.2.5.ga il me semble, plus très sûr du patch level car je l'ai pas sous les yeux) mais j'ai une erreur de résolution de dépendance (en fait 2 dépendances n'ont pas réussi a être résolu.
    je précise que je n'ai pas spécifier de resolver ni quoi que ce soit dans l'ivy.xml, j'ai juste mis la dépendance Hibernate.

    Donc j'aimerais savoir quel repository public il est conseillé d'utiliser (du moins pour mes tests !) ?

    et ma dernière question :
    J'ai lu dans la doc dans les "best practice" qu'il était possible de créer son propre repository sur le réseaux local par ex ! ce qui m'intéresse énormément (surtout dans un cadre de travail en entreprise) , seulement voilà la doc est pas très parlante ! je dirais même que c'est carrément obscure ! donc si quelqu'un pouvait m'expliquer la marche à suivre pour créer un tel repository et d'y mettre par exemple hibernate et ces dépendance dans un 1er temps ! ça serait super !

    Merci d'avance

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Par défaut
    Premièrement, le gestionnaire de dépendances Ivy est un très bon choix.

    Ivy permet d'adresser les deux mondes: les repository Maven et les repository Ivy.
    Par défaut, Ivy est configuré pour aller chercher dans le repository central de Maven.

    Si il te manque des dépendances à la résolution, il s'agit peut être d'un problème de méta donnée Maven et il te faut exclure certains artifacts récupéré transitivement en ajoutant simplement la section exclude à l'intérieur de la section dependency.

    Concernant la mise en place d'un repository Ivy d'entreprise, c'est une très bonne idée.
    Tu peux le constitué manuellement a l'instruction ivy:install

  3. #3
    Membre très actif
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut
    Je pense aussi que c'est un bon choix, en fait j'ai pas mal réfléchi au sujet et je me suis décidé pour Ivy car je trouve que Maven ne m'apporter pas grand chose et pour l'avoir utiliser au taf dernièrement, je trouve que dès que l'ont sort des fonctions de base, ça devient vite compliqué....
    Du coup je suis revenu au bon vieille Ant où la je maitrise tous ce qui ce passe !
    je gère ma compilation, doc, test et mes déploiement vers mes différents serveur tout en paramétrant correctement mes fichiers de conf (merci à la task "replace") ....
    du coup j'avais juste besoin de qqch pour les dépendances ....
    de plus Ant et Ivy sont bien mieux gérer que Maven dans Eclipse et il est facile de paramétrer les "Dynamics Web project" du WTP pour profiter de mes scripts ant tout en gardant les avantages du WTP je pense entre autre au "Run on server" quand on a paramétrer tomcat ... Bref ....

    Citation Envoyé par gboissinot Voir le message
    Si il te manque des dépendances à la résolution, il s'agit peut être d'un problème de méta donnée Maven et il te faut exclure certains artifacts récupéré transitivement en ajoutant simplement la section exclude à l'intérieur de la section dependency.
    j'ai pas tout saisi là ?
    en fait j'ai réussi hier soir a le faire marcher en mettant la derniere version (en fait je me suis inspiré d'un ivy.xml trouver dans l'archive d'hibernate-annotation télécharger sur le site d'hibernate)
    voilà ce que j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <dependencies>
    		<dependency org="org.hibernate" name="hibernate-core" rev="3.3.2.GA" conf="default->default"/>
    </dependencies>
    par contre j'ai pas trop saisi le : conf="default->default" , ça sert à quoi ?

    et sinon tu me dis que c'est le repository Maven par défaut ?
    mais c'est lequel et y a t'il un site ou on peut explorer tout ce qu'il y a et ou je vais pouvoir trouver les infos que je met dans la balise dependency ? car là j'y suis aller a taton pour trouver une version qui était bonne

    et pour le ivy:install ? comment ça se passe ça génére quoi et ça peut se mettre dans un serveur apache après ?

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Par défaut
    Ivy permet d’adresser les deux mondes, c’est à dire qu’il permet de lire les meta données d’un repository Maven afin de récupérer des artefacts Maven et ces dépendances transitives. Et il permet également de lire les meta donnes Ivy d’un repository Ivy pour récupérer des artefacts et ces dépendances.

    Par défaut, Ivy va rechercher ces artefacts dans le repo central de Maven à l’adresse suivante
    http://repo1.maven.org/maven

    Spécifier conf="default->default" dans la configuration de récupération de ta dépendance, indique que tu va prendre la configuration publique default de ton artefact à récupérer (partie droite de la flèche) . Maven expose une configuration publique nommée ‘defaut’ qui signifie de récupérer l’artefact et ces dépendances transitives. Si tu veux récupérer uniquement l’artefact, tu dois spécifier ‘master’

    Et coté gauche la flèche, il s’agit des configurations de ton projet, a toi. Et par défaut, Ivy fournit une configuration default.

    La task install de Ivy permet d’installer a la demande un artefact depuis un repository distant dans un repository privé. Cela semble être un de tes besoins de consister un repository accessible par Ivy avec uniquement tes dépendances.

  5. #5
    Membre très actif
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut
    ok cool merci pour toute ces infos !!

    donc pour le moment je vais laisser le dépot maven par défaut car il semble bien y avoir les dernière version des lib que j'ai besoin.

    par contre pour les "vrai" dépot ivy j'ai trouver que l'officiel "ivyrep" et "ivyrep sandbox" mais j'ai l'impression qu'il sont pas très à jour de plus aujourd'hui il semble y avoir un soucis sur "ivyrep sandbox" ( http://opensvn.csie.org/ivyrepsandbox/ )......
    est ce qu'il existe des dépôts à jour ? et qui marche lol ?

    ensuite j'ai une dernière question concernant le repository privé car dans un cadre d'entreprise il suffit que le repo public soit en rade pour être emmerder (comme ça semble l'être pour "ivyrep sandbox" donc ça me tente vraiment d'en faire un car je n'y vois que des avantages (notamment le fait de tout contrôler).

    donc tu dis :
    La task install de Ivy permet d’installer a la demande un artefact depuis un repository distant dans un repository privé. Cela semble être un de tes besoins de consister un repository accessible par Ivy avec uniquement tes dépendances.
    Donc j'en déduis qu'avant d'utiliser ivy:install il faut créer ce repository privé ? est ce que c'est cette tache qui s'en charge aussi ou c'est tout simplement un dossier tout bête que je copierai ensuite sur mon serveur apache local ? est ce bien ça ? ou il me manque une étape ?

    merci d'avance

    ps : je compte écrire un tuto avec tout ça ensuite car j'ai tellement lutter que je crois que ça vaut le coup de le mettre à disposition. avis au amateur.

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 350
    Par défaut
    Effectivement, ivyrep n’est pas à jour et il ne faut pas l’utiliser.
    Il n’existe pas à ma connaissance de repository publique Ivy à jour disponible mais uniquement des repository Maven avec des métadonnées Maven.

    Concernant la constitution d’un repository privé de type Ivy, un simple répertoire partagé peut faire l’affaire via un accès par le protocole file://. Ensuite, mettre un serveur apache en front all est effectivement une bonne idée.

    De plus, je rajouterais que si u souhaites te constituer un repository privé, tu peux en fait utiliser un gestionnaire de repository, outil très utilisé dans le monde Maven. Citons comme exemple les outils Sonatype Nexus, Apache Archiva et JFrog Archiva (le plus mieux à mon avis).
    Ces outils vont servir de proxy vers Internet, de cache des artefacts demandés et également de stockages d’artefacts corporate non publique.

    Dans un scénario avec Ivy, Ivy se connectera par exemple à Artifactory (déclaration de le fichier settings.xml de l’adresse d’un repository virtuel de Artifactory et de type Maven) qui se connectera aux repository publiques Maven (incluant le repository central de Maven). Les artefacts accédés seront stockés au fur et à mesure et gérés par Artifactory. A une seconde demande d’un artefact du même utilisateur ou d’un autre utilisateur, celui-ci sera directement renvoyé sans accès Internet.

    Néanmoins, il ya une différente notable avec un repository privé construit manuellement à travers la commande ivy :install, c’est que les artefacts récupérés depuis les repository publiques Maven ne seront pas converties en métadonnées Ivy. Tous les artefacts récupérés par Artifactory seront de type Maven. (Cela ne posera pas de problème avec Ivy car il adresse les demandes).
    L’intérêt de la commande iv :install est qu’il convertie l’artefact Maven demandé en Artfeact Ivy (métadonnée ivy généré automatiquement à partir de la métadonnée Maven).
    Pour les actions précédentes, les trois outils (cités précédemment) fonctionnent de la même manière. Mais Artifactory s’ouvre au monde Ivy en état capable de gérer des artefacts Ivy pushé précédemment.

    Ainsi avec les informations suivantes, une architecture classique avec Ant/Ivy , Ivy déclare deux repository en accès :
    - Un lecteur virtuel de Artifactory référent un ensemble de repository publique Maven. Chaque artefact accédé est caché dans Artifactory pour backup, accès plus rapide et partage avec les autres utilisateurs
    - Ivy déclare un repository en écriture qui est un repository dédiée Artifactory mais qui ne contiendra que des métadonnées Ivy. Ce repository contiendra les artefacts générés par tes produits avec des métadonnées Ivy

    À noter: Ivy permet également de générer de la métadonnée Maven mais cela est très limitatif car nous sommes contraint par les règles de métadonnées Maven. Ainsi, cela peut poser des problèmes avec perte d’informations dans certaines situations.

Discussions similaires

  1. Apache SVN avec repository sur le réseau
    Par OButterlin dans le forum Apache
    Réponses: 1
    Dernier message: 08/09/2009, 14h09
  2. Réponses: 5
    Dernier message: 16/04/2008, 16h34
  3. [MAVEN2] Conflit de repository Ibliblio / Apache
    Par Pashmina dans le forum Maven
    Réponses: 1
    Dernier message: 25/10/2006, 12h07
  4. Réponses: 6
    Dernier message: 28/10/2002, 11h34
  5. Tomcat + Apache-SOAP
    Par lucho31 dans le forum Services Web
    Réponses: 3
    Dernier message: 17/10/2002, 09h55

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