Rfrence web
http://www.sonatype.com/resource-center.html
Prsentation
Maven est un outil de gestion de projet logiciel. Bas sur un modle de projet objet (POM = Project Object Model) Il permet notamment :
d'automatiser certaines tches : compilation, tests unitaires et dploiement des applications qui composent le projet de grer des dpendances vis vis des bibliothques ncessaires au projet de gnrer des documentations concernant le projet
GAV
artifactId: nom arbitraire de projet (sans espaces ni virgules) Version: Version de projet
Format {Major}.{Minor}.{Maintanence} Ajouter -SNAPSHOT pour identifier en cours de dveloppement Syntaxe GAV : groupId: artifactId: version
POM version <?xml version="1.0" encoding="UTF-8"?> <project> <modelVersion>4.0.0</modelVersion> <groupId>ENSA4GInfo</groupId> <artifactId>ProjetTuto3</artifactId> <version>1.0-SNAPSHOT</version> </project>
Emballage (Packaging)
Crer un type spcifique en utilisant l'lment Packaging Permet Maven de savoir comment construire le projet Exemple de types d'emballage:
pom, jar, war, ear, custom jar par dfaut
<?xml version="1.0" encoding="UTF-8"?> <project> <modelVersion>4.0.0</modelVersion> <groupId>ENSA4GInfo</groupId> <artifactId>ProjetTuto3</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> </project>
Hritage de projet
<?xml version="1.0" encoding="UTF-8"?> <project> <parent> <groupId>ENSA4GInfo</groupId> <artifactId>Projets</artifactId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>ProjetTuto3</artifactId> <packaging>jar</packaging> </project>
Maven est un support pour les projets multi-modules Pour chaque projet, maven cre un artefact primaire Un pom parent est utilis pour regrouper les modules
Exemple Plusieurs quipes de dveloppements France, Sude, Maroc, Brsil, Italie, USA Chef de projets bas en France Besoin de suivi avancement travaux (Quantit + qualit) Architecture en couche Technologies : Struts, Spring, Hibernate
Cycle de vie
La construction dun projet par Maven suit un cycle de vie Le cycle de vie par dfaut:
generate-sources/generate-resources compile test package integration-test (pre and post) Install deploy
Commandes maven
Pour appeler la construction Maven il faut dfinir un cycle de vie objectif mvn install
mvn clean
Invokes just clean
Installation
Tlcharger maven 3
Installation
Dcompressez le fichier zip dans le rpertoire: C:\Program Files Apache Software Foundation Lirez le fichier README Ajouter la variable denvironnement path PATH=C:\Program Files Apache Software Foundation \apache-maven3.0.x\bin";%PATH% Tester lintallation en tapant la commande : mvn -version
http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
Ouvrir pom.xml
Tapez la commande: mvn package La ligne de commande permet d'imprimer diffrentes actions, et se terminent par ce qui suit:
Contrairement la premire commande excute (archetype:generate), vous remarquerez peut-tre la seconde est tout simplement un seul mot (-package). Plutt qu'un objectif, c'est une phase. Une phase est une tape dans le cycle de vie de construction, qui est une squence ordonne de phases. Lorsqu'une phase est donne, Maven excute toutes les tapes de la squence jusqu' (et y compris) celle qui est dfinie. Par exemple, si nous excutons la phase de compilation, les phases qui sont effectivement excutes sont: validate generate-sources process-sources generate-resources process-resources compile Vous pouvez tester maintenant le jar compil et emball avec la commande suivante: java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
Il y a deux autres cycles de vie Maven en plus de celle de la liste par dfaut ci-dessus. ils sont clean: nettoie les artefacts crs par les versions antrieures site: gnre la documentation du site pour ce projet
Les phases sont effectivement mises en correspondance avec les objectifs sous-jacents. Les objectifs spcifiques excuts par phase dpend du type de conditionnement du projet. Par exemple, le paquet excute jar: jar si le type de projet est un fichier JAR, et war: war est le type de projet ( si vous volez quil soit un war)
Une chose intressante noter est que les phases et les objectifs peuvent tre excutes dans l'ordre.
Le projet cible
>> mvn clean dependency:copy-dependencies package Cette commande permet de nettoyer le projet, copie dpendances, et le paquet du projet (excution de toutes les phases jusqu' forfait, bien sr).
Site de documentation
>> mvn site Cette phase gnre un site bas sur l'information contenu dans POM du projet. Vous pouvez regarder la documentation gnre sous la cible / site.