FAQ MavenConsultez toutes les FAQ
Nombre d'auteurs : 11, nombre de questions : 97, dernière mise à jour : 12 mai 2014 Ajouter une question
Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums de http://www.developpez.com et de l'expérience personnelle des auteurs.
Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.
Maven recherche les dépendances dans le repository dit central, présent à l'adresse : http://search.maven.org/
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 trouvent le fichier POM de la dépendance ainsi que le fichier .jar (ou autre selon le type d'artefact).
Pour ajouter une dépendance à un projet, il suffit de la déclarer dans le pom.xml.
Maven s'occupera de la récupérer (s'il s'agit d'un projet ayant une licence compatible avec la redistribution) :
Code xml : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 | <project> ... <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> ... </project> |
Si l'artefact est un .jar, il n'est pas nécessaire de spécifier son type.
On doit préciser à Maven la version de la dépendance que l'on souhaite utiliser :
Code xml : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <project> ... <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> ... </project> |
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 |
Le scope (la portée) d'une dépendance est déclaré par la balise scope dans la déclaration d'une dépendance :
Code xml : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <project> ... <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> ... </project> |
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).
Certaines dépendances, de part leur licence, 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 :
Code xml : | Sélectionner tout |
1 2 | mvn install:install-file -Dfile=<chemin-du-fichier> -DgroupId=<group-id> \ -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging> -DgeneratePom=true |
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 (après avoir revérifié que c'est bien une erreur, suivez le guide : Guide to uploading artifacts to Ibiblio).
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes 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 © 2024 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.