1. Qu'est-ce que Maven
Maven est un outil de construction de projet développé à Java. Il peut automatiser la compilation, les tests, la publication et les documents pendant le processus de construction du projet, réduisant considérablement le fardeau de déploiement des programmeurs.
2. Installer Maven
L'installation de Maven est très simple. Visitez la page Maven officielle à télécharger: http://maven.apache.org/download.cgi
Après le téléchargement, configurez la variable d'environnement M2_Home, puis exécutez MVN --version dans le terminal. Lorsque vous voyez l'invite de sortie correcte, Maven est installé.
3. Concepts de base de Maven
L'idée principale de Maven est POM, c'est-à-dire le modèle d'objet Project. Les fichiers POM décrivent les ressources (code source, dépendances, tests, etc.) utilisées par un projet Maven sous la forme d'un fichier XML. La figure suivante décrit la structure du fichier POM et comment Maven appelle le fichier POM.
Lorsqu'une commande maven est exécutée, un fichier POM sera transmis et Maven sera exécuté sur la ressource décrite dans le POM
Fichier POM:
<project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd "> <ModelVersion> 4.0.0 </ Modelversion> <! - The Basics -> <proupId> ... </proncId> <Artefactive> ... </ artifactid> </ version> ... </pLEALAGE> ... ... </packaging> <Dependencymanagement> ... </ DependencyManagement> <Dodules> ... </dodules> <properties> ... </properties> <! - Build Paramètres -> <fuild> ... </ build> <mording> ... </ reporting> <! - Plus d'informations de projet -> <nom> ... </ name> <description> ... </ description> <url> ... </url> <1Neneept <Lis licence> ... </clicences> <Organization> ... </ Organization> <Developers> ... </velopers> <contributeurs> ... </porthy contributeurs> <! - Paramètres d'environnement -> <Issuemanagement> ... </iseMemangation> <CiManagement> ... </CiManagement> </ Maillists> ... </ Maillinglists> <scm> ... </cm> <PrerequisS> ... </ Prérequis> ... </spresitories> <pèvres> ... </spèvres> <PluginRepositienes> ... </ PluginRepositienes> <courtributionManagement> ... </ DistributionManagement> <frfiles> ... </ Profiles> </proyding>
ModelVersion est la version du modèle POM, 4.0.0 prend en charge Maven2 et 3
Coordonnées maven (coordonnées maven)
(1) GroupID: Il s'agit de l'identification unique d'une organisation ou d'un projet. Dans la plupart des cas, il utilisera le nom root du package Java du projet en tant que groupe GroupID, comme com.pastqing
(2) Artefactive: C'est le nom du projet en cours de construction, par exemple, un système de paiement Artifactid est Web-Pay. ArfactId est le nom de sous-répertoire sous le répertoire GroupID dans le référentiel Maven
(3) Version: Comme son nom implique le numéro de version de l'émission du projet
Les trois éléments ci-dessus font partie du nom du résultat de la construction. Une fois le projet construit, un package en pot sera généré. Le chemin situé dans le référentiel Maven est Maven_Repo / Com / PastQing / Web-Pay / 1.0 / Web-Pay-1.0.jar
4. Un projet Hello World Java construit avec Maven
Construisez un projet à l'aide de l'archétype du plugin Maven:
Ouvrez le répertoire de travail dans le terminal et exécutez la commande:
Archétype MVN: générer
, La première fois qu'il fonctionne, c'est plus lent car la première fois que vous devez télécharger le prototype de projet associé à partir du référentiel Maven Central. Après le téléchargement, le modèle de projet sera sélectionné, et GroupID, Artifactid, Version, etc. sera entré. Il y aura une invite de succès une fois la construction terminée.
Emballage du projet: Passez au répertoire racine du projet et exécutez le package MVN. Une fois le package réussi, le projet générera un dossier cible avec des fichiers JAR générés et des fichiers de classe.
Exécutez le fichier JAR:
Java -CP Target / Helloworld-1.0-Snapshot.jar com.pastqing.app
À ce stade, un projet Java le plus simple construit par Maven a été achevé.
5. Un projet Java-Web construit avec Maven
La génération d'un projet Web est essentiellement similaire à la génération d'un projet Java, mais le modèle utilisé est différent. Je ne l'expliquerai pas ici. Parlons de la façon d'utiliser le plug-in Tomcat ou Jetty pour exécuter un projet Web. Ici, nous prenons Tomcat comme exemple.
Installation du plug-in Maven Tomcat: http://tomcat.apache.org/maven-plugin-2.2/
Nous ajoutons les informations de plug-in suivantes au fichier POM dans le projet Web
<flugin> <proupId> org.apache.tomcat.maven </prôdId> <Artifactid> Tomcat6-Maven-Plugin </ Artifactid> <DERVIÈRE> 2.2 </ Version> </GRUGIND> <GRANGIND> <ProupID> org.apache.tomcat.maven </prounid> <Artifactid> TomCat7-Maven-Plugin </ GroupId> <version> 2.2 </ version> </ plugin>
De cette façon, nous intégrons le plug-in maven de Tomcat, et nous n'avons besoin que d'une commande pour déployer et démarrer le service. La commande est la suivante:
mvn tomcat: courir
(Tomcat6)
mvn tomcat7: courir
(Tomcat7)
Déploiement automatique vers Tomcat externe à l'aide du plugin Tomcat Maven
Le déploiement automatique ci-dessus utilisera Tomcat intégré à Maven. Ensuite, nous modifions le fichier POM pour permettre au projet d'être déployé sur Tomcat externe.
Modifiez le fichier du projet POM et ajoutez des informations de configuration du serveur
<flugin> <proupId> org.apache.tomcat.maven </prôdId> <Artifactid> Tomcat7-Maven-Plugin </ ArtifactId> <DERVIÈRE> 2.2 </ Version> <FIFIGIGURATION> <URL> HTTP: // LocalHost: 8080 / Manager / Text </url> <Server> Tomcat7 </server> <username> Administrare <sword> admin </pord> </FIGIFIGURATION> </ Plugin>
Les valeurs du serveur, du nom d'utilisateur et du mot de passe correspondent à un par un au serveur, au nom d'utilisateur et au mot de passe dans setting.xml dans% maven_home.
Démarrez Tomcat externe et exécutez la commande mvn tomcat7: redéployant
6. Comment construire un projet multi-module avec Maven
1. POM POME
Tous les fichiers Maven Pom sont hérités d'un POM parent. Si aucun POM de parent n'est spécifié, le fichier POM est hérité du pom racine. La relation d'intégration des fichiers POM est indiquée dans la figure ci-dessous:
Vous pouvez faire un fichier POM hériter explicitement d'un autre fichier POM. De cette façon, les paramètres de tous les fichiers Child POM peuvent être modifiés en modifiant les paramètres du fichier public POM POM. Ici, nous utilisons la balise parent pour définir le pom parent. Construisons un projet Mavne multi-module
2. Construisez la structure du répertoire du projet
Nous créons un projet Maven-Web appelé EducationCloud. Ensuite, nous créons plusieurs dossiers dans le répertoire du projet pour diviser nos modules. Ils sont parentes par l'éducation (module parent), l'éducation-core (entreprise), l'éducation-entité (entité), l'éducation-Web (service Web)
La division d'annuaire peut être divisée en fonction des besoins, ma division est comme ci-dessus
3. Modifier le fichier POM
Nous utilisons des balises de module pour diviser les modules. Ouvrez le fichier POM dans le répertoire racine et ajoutez la balise Moudle.
<? xml version = "1.0" Encoding = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" XSI: ScheMalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modeversion> 4.0.0 </ Modelversion> <proupId> comeducationcloud </prouverId> <ArtifActid> Educationcoud> Comid> <version> 1.0-snapshot </-version> <packaging> pom </ packaging> <modules> <odule> education-parent </dudule> <module> education-core </ module> <odule> education-entity </ module> </name> education-web </ module> </odules> <name> educationcloud </name> </nom-web </ project>
Ici, nous parlons de la balise d'emballage: la plus courante est de l'emballer comme un pot, la guerre. Tout projet Maven doit définir l'élément emballé dans le fichier POM. Si l'élément n'est pas déclaré, il est emballé sous forme de pot par défaut. Si la valeur de définition est la guerre, elle est emballée en tant que package de guerre. Si la valeur est POM, aucun package n'est généré (généralement utilisé dans le module parent).
Ajoutez des balises parentaux à chaque module:
La balise parent est utilisée pour définir la position de coordonnées du POM parent et est définie comme suit:
<Ampent> <proupId> com.educationcloud </proupId> <Artifactid> educationCloud-Parent </ artifactid> <version> 1.0-snapshot </-version> <loutpath> </plativepath> </parent>
GroupID, ARITFACTID, Version sont des éléments qui représentent les informations de localisation du POM POM. RelativePath est le chemin relatif qui représente l'emplacement du POM parent. La valeur par défaut est ../pom.xml. Il convient de noter ici que GroupId, AritfACTID, la version doit correspondre au fichier POM POM.
Utilisez la responsabilité de dépendance pour gérer toutes les dépendances du projet. Afin de gérer uniformément les dépendances, nous utilisons la gestion de dépendance dans le fichier POM du module du projet parent pour déclarer toutes les dépendances du projet. De cette façon, lorsqu'il se réfère aux dépendances dans d'autres sous-projets, le numéro de version peut être omis et il est également facile à modifier.
Écrivez le fichier POM du module du projet parent ** EducationCloud-parent, ajoutez-le comme suit:
Utilisez le pluginmanagement pour gérer le plugin Maven dans le projet. Afin de gérer uniformément le plugin Maven dans le projet, tel que le plugin de compilation Maven, le plugin d'emballage, etc. et ses informations de configuration, ajoutez le pluginmanagement au fichier POMM POM POM POM pour la gestion. De cette façon, les plugins référencés dans tous les sous-modules seront traités uniformément, et ce qui suit est ajouté:
<fluginManagement> <Glugins> <! - Configuration du plugin complile -> <plugin> <groupId> org.apache.maven.plugins </prôned> <lefactive> maven-complier-plugin </ artifactid> <version> 3.3 </ version> <finiguration> <source> 1.7 </FECER> </ible> 1.7 </ Target> </FIGIGURATION> <Glugin> </ Plugins> </ PluginManagement>
Ci-dessus, nous avons ajouté la configuration du plug-in de compilation Maven, compilé avec JDK1.7. Après économie, nous pouvons voir les modifications correspondantes dans le POM effectif de chaque sous-module.
Utilisez des étiquettes de propriétés pour définir les constantes:
Nous définissons les numéros de version de chaque dépendance en tant que différentes constantes, afin qu'elle soit pratique pour les modifications futures:
<preperties> <jdkversion> 1.7 </jdkversion> <SerpletVersion> 3.1.0 </vrletversion> <mysqlversion> 5.1.34 </ mysqlversion> <nunitversion> 4.12 </nunitversion> <fatencecoding> utf-8 </ptedendencoding> </propperties>
Lorsque vous citons, utilisez simplement la forme de $ {jdkversion}.
Remarque, toutes les opérations ci-dessus peuvent être utilisées dans l'IDE, ce qui le rend plus pratique et simple.