Peut-être que je n'étais pas talentueux, et quand j'ai rencontré Maven pour la première fois, j'étais confus par divers tutoriels inconnus. Dans mon usage ultérieur, j'ai constaté que la plupart des fonctions de Maven n'étaient pas aussi difficiles que je l'imaginais.
Cet article est destiné aux débutants de Maven, dans l'espoir de le laisser comprendre Maven le plus rapidement possible et de profiter de la série d'avantages qu'elle apporte.
[Une question simple]
Avant de donner une explication, posez une question simple.
Si vous développez deux projets Java sous Eclipse et que vous les appelez A et B, certaines fonctions du projet A dépendent de certaines classes du projet B, comment maintenir cette dépendance?
Je l'ai fait avant d'utiliser Maven, Packaged Project B en tant que pot et j'ai importé le fichier JAR de B sous la bibliothèque du projet A.
Cela a des inconvénients évidents:
1. Si un bug en B est trouvé pendant le processus de développement, B doit être reconditionné et recompilé pour le projet A.
2. Lors de la collaboration au développement du projet A, afin de s'assurer qu'il peut s'exécuter normalement, choisissez d'emballer B en A, ou de choisir de publier B comme B et d'informer le développeur de la façon de l'utiliser. De toute évidence, les deux méthodes ne sont pas très bonnes. Le premier peut provoquer un gaspillage de ressources (par exemple, le développeur peut développer d'autres projets qui reposent sur B, qui a été stocké localement), tandis que le second apportera des risques au fonctionnement normal du projet (si l'œuvre est remise au travail manuel, il sera destiné à apporter un certain taux de défaillance).
Par conséquent, contrôler manuellement les dépendances entre les projets de cette manière est évidemment une «mauvaise» approche.
[Introduction à Maven]
Selon l'avis de l'auteur, la fonction centrale de Maven est de décrire raisonnablement les dépendances entre les projets.
Tous les projets Maven contiennent un fichier nommé pom.xml, qui enregistre son propre <proupId> <ArtefactId> <version> et d'autres champs. Ces champs sont remplis lors de la création d'un projet Maven, et Maven localisera le projet basé sur eux.
Une autre balise clé dans un POM est <de dépendances>, qui peut contenir plusieurs balises <dependency>, et sous <Dependency> sont les champs de dépendance tels que <ProupId> <ArtifActid> <version> introduits ci-dessus, qui déterminent une version unique de projet.
Un pom.xml typique [du projet luajava]:
<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> <GroupId> org.KeplerProject </ GroupId> <ArtifActid> Luajava </ Artifactid> <version> 1.1 </DERNIERSE> <packaging> jar </ Package> <name> luajava </name> <url> http://maven.apache.org </url> <properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> </properties> </ build> <pougins> <ArtefactId> Maven-Compiler-Plugin </ ArfactId> <Dersion> 2.0.2 </DERNIFRIGURATION> <FIFIGIFICATION> <DECHER> 1.7 </ Source> <parget> 1.7 </ Target> </figinguration> </gigin> </glugins> </ build> <peedentences> <dependency> <proupId> Junit </prounid> <ArtifActid> JUNIT </ ARTIFACID> <version> 3.8.1 </ version> <ccope> Tester </cope> </Dependency> </ project>
[Bibliothèque Maven]
En prenant les projets A et B tout à l'heure comme exemple, écrivez <dependency> dans le fichier POM du projet A, et Maven trouvera le projet B dans l'espace de travail et créera des dépendances. À l'heure actuelle, le projet A peut accéder directement aux ressources de classe du projet B, et le point d'arrêt du projet B sera toujours touché lors du débogage de A.
En plus de l'association de dépendance de l'espace de travail, Maven peut également associer des projets dans une image distante. Par défaut, s'il n'y a pas d'enregistrement de projet correspondant dans l'espace de travail, Maven se connectera au référentiel central pour rechercher. S'il est trouvé, il téléchargera le projet dans la bibliothèque locale (la bibliothèque locale de Windows est située dans le répertoire .m2 du document utilisateur) et définit automatiquement l'association. C'est une fonctionnalité très pratique. Lorsque nous avons besoin d'un support supplémentaire de package JAR, nous n'avons plus besoin de télécharger manuellement et de le présenter. Nous avons seulement besoin de coller les champs de dépendance correspondant au projet à l'emplacement approprié du POM et de laisser le reste à Maven pour terminer.
[Un exemple]
Alors, comment connaissons-nous les champs tels que GroupID du projet requis?
D'une manière générale, si le projet officiel soutient Maven, il y aura généralement un champ de dépendance sur sa page pour la copie, mais il y a aussi une situation où Maven est soutenu mais aucun champ dépendant n'est donné. Les caractéristiques Maven des autres projets sont maintenues par des tiers, et il est difficile d'obtenir un soutien à Maven à partir des canaux officiels.
Par conséquent, la solution préférée pour interroger les champs de dépendance est d'utiliser le service de recherche Maven pour rechercher.
Ici, je recommande une adresse: mvnRepository.com
Ce qui suit est un exemple d'utilisation de l'éclipse pour associer le pilote mysqljdbc. Avant cela, veuillez confirmer qu'il prend en charge Maven en aide-> À peu près:
Dans la nouvelle version officielle d'Eclipse, la prise en charge de Maven est déjà intégrée. Si la version est plus ancienne, vous pouvez installer le plug-in maven.
Créons d'abord un nouveau projet Maven, new-> project-> mavenproject-> createasimpleproject (skiparchetypeselection).
Ce qui suit est l'étape la plus importante. Remplissez les champs de dépendance tels que GroupID de ce projet. Les champs remplis ici seront utilisés lorsque d'autres projets dépendent d'eux. Les pièces non remplies sont facultatives:
Après cela, nous avons recherché "MySQL JDBC" sur mvnRepository.com
Bientôt, nous avons trouvé le résultat et cliqué pour afficher les informations détaillées de la version:
Voici la liste de plusieurs versions et utilisation de MySQL JDBC. Ici, nous choisissons une deuxième nouvelle version 5.1.34:
Copiez le contenu dans la boîte Maven et écrivez-les dans les <dépendances du 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> <ProupId> com.Test </proupId> <ArtifActid> maventest </ artifactid> <version> 0.0.1-Snapshot </Dero version> <Dependantsc <ArtefactId> MySQL-Connector-Java </ ArfactId> <DERNÉRATIVE> 5.1.34 </DERNIERS> </DENDENCENCE> </DENDENCESSE> </ PROJET>
Une fois la barre de lecture de progression terminée, vous pouvez voir qu'il y a plus de dépendances Maven dans le projet, et vous pouvez trouver le package de pilote JDBC que nous venons d'introduire:
[Autres fonctionnalités]
1. Source miroir
Il est évident que l'entrepôt de Maven Central a une charge relativement importante et n'est pas en Chine, donc la vitesse est très lente et parfois les dépendances ne peuvent pas être trouvées. Par conséquent, en particulier dans les occasions de développement d'équipe à petite échelle, la construction d'un serveur privé Maven améliorera considérablement l'efficacité. Voici un outil de construction d'image Maven: Nexus: http://www.sonatype.org/nexus/
Utilisez-le pour construire rapidement et facilement une source d'image Maven privée, puis configurez-le dans Maven Settings.xml.
2. Téléchargement paresseux du code source SRC
À certains moments, nous devons nous référer au fichier source qui dépend du projet. Pour le moment, nous pouvons essayer de double-cliquer directement le fichier de classe. S'il y a un fichier source dans la source d'image Maven, il sera automatiquement téléchargé dans la zone locale et Eclipse se chargera automatiquement et affichera automatiquement.
3. Compiler la configuration des paramètres
L'auteur utilise la version EclipSeluna. La version par défaut de compilation Java de Maven est de 1,5. Nous pouvons spécifier sa version de compilation dans POM pour l'améliorer à 1,7 (voir l'étiquette de construction dans Luajavapom); De plus, ces paramètres seront également lus et correctement configurés par des outils d'automatisation tels que Jenkins Continuous Intégration.
Résumer
Ce qui précède consiste à comprendre rapidement Maven. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!