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 :

Contraindre les projets à une liste de dépendances autorisées


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
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Par défaut Contraindre les projets à une liste de dépendances autorisées
    Bonjour,
    Nos projets java ne sont autorisés qu'à certaines bibliothèques java (JAR). Ex : commons-dbutils en version 1.1 et pas d'autres version.
    Comment faire dans le pom pour que maven lors de la compilation d'un projet n'utilise que les jars autorisés.
    Pour information nous utilisons Nexus comme repository.
    Nous pensions créer un repository contenant uniquement les jars mais comment dire à maven d'utiliser celui là pour la compilation ? Utilisations de profile mais c'est pas très clair pour nous ?
    En gros pour compiler : un repository précis, mais pour que maven fonctionne il utilise un repository plus ouvert.
    Merci de vos informations.

  2. #2
    Membre expérimenté

    Inscrit en
    Octobre 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 133
    Par défaut
    Dans les dépendances de maven, tu peux déterminer un numéro de version spécifique pour ton jar, du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>1.4.1</version>
    </dependency>
    Ici, tu va chercher le jar junit en version 1.4.1 (et uniquement cette version pas les suivantes même si elles existent).
    Ensuite, le 2eme problème que tu auras ce situe dans le fait que potentiellement ta dependance junit necessite une autre dependance (que tu n'as pas gere), dans ce cas, il te faudra gérer ce conflit (ou accepter le nouveau jar même si ce n'est que pour compilation ou voir si tu ne peux pas utiliser une autre version...)

    Tu peux ensuite créer un repository commun (sur un serveur) et faire en sorte que tous le monde se connecte dessus (et non sur les serveurs distants), je me souviens par contre plus de la commande mais sait que cela fonctionne (j'en ai utilise un il y a quelques annees pour cela), je croit même que tu peux empêcher maven d'aller chercher plus loin mais n'en suis pas sur.

    Après pour avoir un moyen d'avoir des dépendances non nécessaires pour la compilation, il faut ajouter le scope a tes dépendances (le scope provided indique que tu n'as pas besoin du jar pour compiler mais que tu l'auras sur le serveur par exemple)

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 197
    Par défaut
    Je ne pense pas que tu puisses n'autoriser que certains dépendances par contre tu peux en empêcher avec l'enforcer plugin :
    http://maven.apache.org/enforcer/enf...endencies.html

    Sinon pour "préconiser" des versions de librairies à utiliser il faut utiliser le dependencyManagement pour donner les versions et ne pas donner ces versions au niveau des dépendances du projet.

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Une solution, c'est de bien contrôler le contenu de son proxy (Nexus, Archiva, etc.) pour n'y mettre que les versions "autorisées". Après, ça n'empêchera pour autant pas les développeurs de court circuiter ce proxy par différents moyens (modification du settings.xml, installation de versions en local, etc.).

    Mais si tu as un serveur d'intégration continue, ces "tricheries" ressortiront très vite et là =>
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  5. #5
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Par défaut
    oui, les exclusions globales n'existent pas malheureusement (track ouvert depuis longtemps sur le projet je crois)

    pas des masses de solutions simples : dependancy management, mais c'est pas du 100%

Discussions similaires

  1. [MySQL] Éviter les / dans une liste déroulante
    Par gastoncs dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/01/2010, 23h41
  2. Modifier les permissions/autorisations d'une liste
    Par Magicmodjo dans le forum SharePoint
    Réponses: 3
    Dernier message: 02/01/2008, 17h20
  3. Réponses: 2
    Dernier message: 03/07/2006, 20h14
  4. créer une liste de valeurs autorisées pour un champ
    Par elitol dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 01/06/2006, 17h37
  5. cmt selectionner tout les champ d'une liste deroulante
    Par mangamat dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/03/2005, 10h08

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