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 :

[Maven2] Regrouper plusieurs POM en 1 seul


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
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Par défaut [Maven2] Regrouper plusieurs POM en 1 seul
    Bonjour,

    Je voudrais pouvoir créer un POM général qui contiendrait des dépendances vers plusieurs jar. De cette manière, je pourrais ne déclarer qu'une seule dépendance.

    Voici mon POM général :

    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
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <project>
      <modelVersion>4.0.0</modelVersion>
      <groupId>custom.pom</groupId>
      <artifactId>db2</artifactId>
      <version>8.2</version>
      <packaging>pom</packaging>
     
     
      <dependencies>
    	<dependency>
            <groupId>custom.db2</groupId>
            <artifactId>db2jcc</artifactId>
            <version>8.2</version>
          </dependency>
          <dependency>
            <groupId>custom.db2</groupId>
            <artifactId>db2jcc_license_cu</artifactId>
            <version>8.2</version>
          </dependency>	
       </dependencies>
    </project>
    et ma dépendance dans le POM de mon projet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <dependency>
       <groupId>custom.pom</groupId>
       <artifactId>db2</artifactId>
       <version>8.2</version>
    </dependency>
    Mais maven recherche le jar de mon POM général, et il n'y en a évidemment pas.

    Comment doit-on faire ? en espérant que je ne me leurre pas.

  2. #2
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par crawling5
    Comment doit-on faire ? en espérant que je ne me leurre pas.
    Tu te leurres.

    Un projet doit nécessairement déclarer ses dépendances propre. Soit ton approche est de faire un jar d'utilitaire utilisant tes dépendances (et dans ce cas ces dépendances ne doivent être utilisées que dans ce jar utilitaire), soit tu optes pour un POM parent, qui définisse les dépendances (si possible dans le dépendencyManagement), ce qui allège fortement l'écriture des POMs enfants.

    Tu peux nous en dire un peu plus sur ton cas?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Par défaut
    J'ai trouvé une solution.

    Je vais prendre l'exemple d'icefaces.

    Pour pouvoir l'utiliser, j'ai besoin de plusieurs jar, ce qui me force actuellement à les déclarer comme dépendance individuellement. Ce que je voudrais, c'est donc créér un pom extérieur à mes projets (qui se trouve dans le repository) qui lui reprendrait les dépendances propres à icefaces.

    Avec cette manière, je ne déclare qu'une seule dépendance dans mes projets alors qu'il y en a bien plusieurs.

    Pour le faire, j'ai un pom icefaces.pom dans mon repository qui contient l'ensemble des dépendances nécessaires pour mon utilisation d'icefaces :

    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
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <project>
      <modelVersion>4.0.0</modelVersion>
      <groupId>custom.pom</groupId>
      <artifactId>icefaces</artifactId>
      <version>1.6.0</version>
      <packaging>pom</packaging>
     
      <dependencies>
    	<dependency>
            <groupId>custom.com.icesoft</groupId>
            <artifactId>icefaces</artifactId>
            <version>1.6.0</version>
          </dependency>
          <dependency>
            <groupId>custom.com.icesoft</groupId>
            <artifactId>icefaces-comps</artifactId>
            <version>1.6.0</version>
          </dependency>
          <dependency>
            <groupId>custom.com.icesoft</groupId>
            <artifactId>icefaces-facelets</artifactId>
            <version>1.6.0</version>
          </dependency>
          <dependency>
            <groupId>custom.com.icesoft</groupId>
            <artifactId>backport-util-concurrent</artifactId>
            <version>1.6.0</version>
          </dependency>
          <dependency>
            <groupId>custom.com.icesoft</groupId>
            <artifactId>el-api</artifactId>
            <version>1.6.0</version>
          </dependency>
          <dependency>
            <groupId>custom.com.icesoft</groupId>
            <artifactId>el-ri</artifactId>
            <version>1.6.0</version>
          </dependency>	
       </dependencies>
    </project>
    Il ne me reste plus qu'à déclarer la dépendance à ce pom dans mon projet parent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <dependency>
          <groupId>custom.pom</groupId>
          <artifactId>icefaces</artifactId>
          <type>pom</type>
    </dependency>
    Le tag <type> que j'ai ajouté dans la déclaration de dépendance me permet d'éviter que Maven2 ne recherche le jar correspondant.

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

Discussions similaires

  1. [AC-2007] Regrouper plusieurs cellules dans une seule
    Par J_help dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 20/07/2009, 18h47
  2. Regrouper plusieurs graphes sur une seule page
    Par Pur2000 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/12/2008, 11h53
  3. Regrouper plusieurs requêtes en une seule?
    Par kabkab dans le forum Requêtes
    Réponses: 12
    Dernier message: 28/07/2007, 11h54
  4. Regrouper plusieurs fichiers en un seul
    Par kurkaine dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/09/2006, 20h14
  5. regrouper plusieurs champ dans un seul en requete
    Par Nicko29 dans le forum Access
    Réponses: 12
    Dernier message: 07/09/2005, 18h29

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