Soutenez-nous
Les FAQs Java :
FAQ JAVA FAQ Java EE FAQ Java ME FAQ Java XML FAQ JavaFX FAQ Java GUI FAQ Struts FAQ JSF FAQ JDBC JDO FAQ Hibernate FAQ Spring FAQ Eclipse FAQ NetBeans FAQ JCreator FAQ Maven 2

FAQ Maven 2Consultez toutes les FAQ

Nombre d'auteurs : 4, nombre de questions : 89, dernière mise à jour : 17 mai 2009 

 
OuvrirSommaireUtilisationGestion des dépendances

Maven recheche les dépendances dans le repository dit central, présent à l'adresse : http://www.ibiblio.org/maven2

Sur ce serveur, dans un sous-répertoire correspondant au groupId (les '.' permettent de séparer chacun des sous-répertoires) puis à l'artifactId, puis enfin à la version, se trouve le fichier POM de la dépendance ainsi que le fichier jar (ou autre selon le type d'artefact).

Mis à jour le 17 juillet 2006  par Denis Cabasson, Eric Reboisson

Pour ajouter une dépendance à un projet, il suffit de la déclarer dans le pom.xml.

Maven s'occupera de la récuperer (si il s'agit d'un projet ayant une licence compatible avec la redistribution) :

Configurer l'ajout d'une dépendance
Sélectionnez

<project>
...
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
...
</project>

Une dépendance est décrite par les informations groupId/artifactId/version/type qui permettent de l'identifier de façon unique.

Si l'artefact est un jar, il n'est pas nécessaire de spécifier son type.

Mis à jour le 17 août 2006  par Denis Cabasson, Eric Reboisson

On doit préciser à Maven la version de la dépendance que l'on souhaite utiliser :

Changer la version d'une dépendance
Sélectionnez

<project>
...
  <dependencies>
  
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
  </dependencies>
...
</project>

La version est obligatoire, sauf si on indique une dépendance déjà déclarée dans un POM parent au sein d'un tag <dependencyManagement>.

On peut préciser un numéro de version comme dans l'exemple ci-dessus.

On peut également donner une plage de versions à Maven (dans le tableau suivant x désigne la version choisie par Maven) :

Syntaxe Signification
(,1.0] x <= 1.0
[1.2,1.3] 1.2 <= x <= 1.3
[1.0,2.0) 1.0 <= x < 2.0
[1.5,) x >= 1.5
(,1.0],[1.2,) x <= 1.0 or x >= 1.2. Plusieurs ensembles peuvent être déclarés, séparés par des ','
(,1.1),(1.1,) Une version autre que la 1.1.
Mis à jour le 17 juillet 2006  par Denis Cabasson, Eric Reboisson

Le scope (la portée) d'une dépendance est déclaré par la balise scope dans la déclaration d'une dépendance :

Un exemple de dépendance avec le scope test
Sélectionnez

<project>
...
  <dependencies>
  
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
  </dependencies>
...
</project>

La dépendance ci-dessus a le scope test, ce qui signifie qu'elle doit être utilisée pour compiler les tests et les exécuter.

Les scopes possibles sont :

  • compile : la dépendance est nécessaire pour toutes les phases du build
  • test : la dépendance est nécessaire pour la compilation/l'exécution des tests
  • runtime : la dépendance est nécessaire à l'exécution, mais pas à la compilation
  • provided : la dépendance est nécessaire à la compilation, mais ne sera pas packagée avec le projet. Typiquement, un container lui fournira cette dépendance (par exemple servlet-api).

Voir aussi : Introduction to the Dependency Mechanism

Mis à jour le 17 juillet 2006  par Denis Cabasson, Eric Reboisson

Certaines dépendances, de part leur license, ne peuvent pas être distribuées via le repository central de Maven. Il faut alors trouver le jar correspondant à cette dépendance et le charger dans le répository local en utilisant la commande :

Chargement d'un jar dans un repository
Sélectionnez

mvn install:install-file -Dfile=<chemin-du-fichier> -DgroupId=<group-id> \
    -DartifactId=<artifact-id> -Dversion=<version>  -Dpackaging=<packaging> -DgeneratePom=true

Un POM basique sera installé dans le repository local. Si vous connaissez les dépendances de cet artefact, vous devez éditer ce POM est y ajouter les dépendances, ainsi vous bénéficierez du mécanisme de dépendances transitives en utilisant cet artefact.

Le packaging est généralement un fichier jar.

Si le jar a une licence compatible avec la redistribution, mais n'est pas présent dans le repository, il s'agit d'une erreur. Vous pouvez donc ouvrir un dossier dans http://jira.codehaus.org/browse/MEV (après avoir revérifié que c'est bien une erreur, voir aussi : Guide to uploading artifacts to Ibiblio).

Voir aussi :
Guide to installing 3rd party JARs

Mis à jour le 31 août 2007  par Denis Cabasson, Eric Reboisson
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 - 2014 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.