Tutoriel d'utilisation Maven super détaillé

Directeur d'usine Java 2021-10-14 05:01:57
tutoriel utilisation maven super taill


MavenConcept de base

À propos de l'auteur

  • Présentation de l'auteur

Page d'accueil du blog:Page d'accueil de l'auteur

Introduction:JAVADomaine créateur de haute qualité、Un étudiant de troisième année、Participer à diverses compétitions provinciales pendant l'école、National race,Une série d'honneurs.

Concentre - toi sur moi.:Suivez mon matériel d'apprentissage、Tous les téléchargements de documents sont disponibles,Mise à jour quotidienne des articles,Inspirez - vous en tant queJAVASenior Program singe.

1、Coordonnées

Qu'est - ce que les coordonnées?

Coordonnées en géométrie plane coordonnées(x,y)Peut identifier un point unique dans le plan.

MavenLes coordonnées se composent principalement de(Les quatre logos suivants déterminentMavenUnicité)

–groupId:Définir le courantMavenLe projet fait partie du projet

  • groupld :Définir le courantMavenProjet réel auquel appartient le projet.Tout d'abord,, MavenProjets et projets réels non-Ça doit être un.-Oui, un. -La relation entre.Par exemple,SpringFrameWorkCe projet pratique,Son homologueMavenIl y aura beaucoup de projets,Par exemple:spring-core spring-contexAttendez..C'est parce queMaven Le concept du module ,Donc,, Un projet réel est souvent divisé en plusieurs modules .Deuxièmement,,groupld Ne devrait pas correspondre à l'Organisation ou à l'entreprise à laquelle le projet appartient .La raison en est simple., - Il y aura beaucoup de projets pratiques dans les organisations ,Sigroupld Défini uniquement au niveau de l'Organisation , Et à l'arrière, nous verrons , aifactd Vous ne pouvez définir que MavenProjets(Module) , Ce niveau de projet réel sera alors difficile à définir .Enfin, groupld La représentation de Java Le nom du paquet s'exprime de la même manière , En général, il correspond à l'inverse d'un nom de domaine .

–artifactId: Définir un module dans un projet réel

  • artifactld : Cet élément définit l'un des éléments réels actuels -- Oui.MavenProjets(Module) , La pratique recommandée est d'utiliser le nom réel du projet comme artifactldPréfixe.Comme dans l'exemple précédentmy-app.

–version: Définir la version actuelle du projet actuel

  • version : Cet élément définit Maven Version actuelle du projet

–packaging: Définir la façon dont le projet est emballé

  • packaging :DéfinitionMaven La façon dont le projet est emballé ,Tout d'abord,, L'emballage correspond généralement à l'extension de fichier du composant généré ,Comme dans l'exemple précédentpackagingPourjar, Le nom du fichier final est my-app-0.1-SNAPSHOT.jar. Peut également être emballé dans war, earAttendez.. Quand ce n'est pas défini packagingQuand , Maven Les valeurs par défaut sont utilisées jar
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.rjxy.maven</groupId>
<artifactId>Hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Hello</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

Maven Pourquoi utiliser les coordonnées ?

  • Maven Le monde a beaucoup de construction , Nous devons trouver une spécification uniforme pour identifier de façon unique une construction
  • Avec des spécifications uniformes , Vous pouvez laisser la recherche à la machine

2、 La portée de la dépendance

La Déclaration de dépendance contient principalement les éléments suivants :

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
</dependencies>

Où la plage de dépendance scope Utilisé pour contrôler les dépendances et compiler ,Tests,En coursclasspathLa relation entre. Les trois principales dépendances sont les suivantes :

  1. compile: Plage de dépendances de compilation par défaut .Pour la compilation,Tests, Trois opérations classpathTout fonctionne
  2. test: Plage de dépendance à l'essai . Pour les tests seulement classpathÇa marche.
  3. provided: Plage de dépendance fournie .Pour la compilation,TestéclasspathTout fonctionne, Mais pas pour l'exécution . Parce que le conteneur a été fourni ,Par exempleservlet-api(Tomcat)
  4. runtime: L'exécution offre .Par exemple:jdbcDrive

image-20210924130351620

3、Gestion des entrepôts

Qu'est - ce queMavenEntrepôt?

Pour stocker uniformément tous les Maven L'emplacement de la construction partagée est l'entrepôt

Maven Disposition de l'entrepôt

  • SelonMaven Les coordonnées définissent un chemin de stockage unique pour chaque construction dans l'entrepôt

image-20210924135028633

Classification des entrepôts

  • Entrepôt local
    ~/.m2/repository/( Répertoire d'entrepôt par défaut )
    Il n'y a qu'un seul entrepôt local par utilisateur ( Besoin de télécharger les ressources de l'entrepôt central à l'entrepôt local )

  • Entrepôt distant

    • Entrepôt central:MavenEntrepôt distant par défaut http://repo1.maven.org/maven2

    • Vêtements personnels: C'est un entrepôt distant spécial , C'est un entrepôt installé dans un réseau local

      image-20210924135412539

    • Miroir: Pour remplacer l'entrepôt central , Généralement plus rapide que l'entrepôt central

4、 Cycle de vie

Qu'est - ce que le cycle de vie ?

  • Maven Le cycle de vie est conçu pour abstraiter et unifier tous les processus de construction
  • Y compris le nettoyage du projet ,Initialisation,Compiler,Emballez,Tests, Presque toutes les étapes de construction, comme le déploiement

Maven Trois cycles de vie

  • clean: Nettoyer le projet
  • default: Construire le projet
  • site: Pour générer le site du projet

Cycle de vieMavenIl existe trois cycles de vie indépendants les uns des autres,Notez que ce qui est dit ici est“Trois séries”,Et“Indépendant les uns des autres”,Ces trois cycles de vie sont:

  • Clean Lifecycle Un peu de nettoyage avant de faire une vraie Construction.
  • Default Lifecycle La partie centrale de la construction,Compiler,Tests,Emballez,Déploiement, etc.
  • Site Lifecycle Produire un rapport de projet,Site Web,Site de publication.

Attention!:

  • Encore une fois, ils sont indépendants les uns des autres , Vous pouvez simplement appeler clean Pour nettoyer le Répertoire de travail , Appelez simplement site Pour générer un site . Bien sûr, vous pouvez aussi courir directement mvn clean install site Exécuter les trois cycles de vie .

Clean Le cycle de vie comporte trois étapes :

  • pre-clean Pour effectuer certaines tâches, il fautcleanTravaux antérieurs
  • clean Supprimer tous les fichiers générés par la dernière construction
  • post-clean Pour effectuer certaines tâches, il fautcleanLe travail fait immédiatement après

clean Cycle de vie chaque cycle de vie se compose d'un ensemble de phases (Phase)Composition, Les commandes que nous tapons habituellement sur la ligne de commande correspondent toujours à une phase spécifique .Par exemple,,Exécutionmvn clean ,Celui - là.clean- Oui.Clean Une phase du cycle de vie .Oui.CleanCycle de vie,Il y en a aussi.cleanPhase.

mvn clean DanscleanC'est là - haut.clean, Dans un cycle de vie , Quand vous exécutez une phase , Toutes les phases précédentes seront exécutées ,C'est - à - dire,mvn clean équivalent à mvn pre-clean clean ,Si nous courons mvn post-clean ,Alors pre-clean,clean Tous seront exécutés .C'estMaven Une règle très importante , Simplifie considérablement l'entrée en ligne de commande .

SiteCycle de vie

SiteCycle de viepre-site Effectuer certains travaux qui doivent être effectués avant de produire la documentation du site;site Générer la documentation du site pour le projet ;post-site Effectuer certains travaux qui doivent être effectués après la production de la documentation du site,Et se préparer au déploiement;site-deploy Déployer le document du site généré sur un serveur spécifique; Ce qui est souvent utilisé ici est sitePhase etsite-deployPhase, Pour générer et publier MavenSite Web,C'est...Maven Fonctions assez puissantes ,ManagerJe préfère., Production automatique de documents et de statistiques ,C'est joli..

DefaultCycle de vie

DefaultCycle de vieDefaultLe cycle de vie estMaven Le plus important du cycle de vie , La grande majorité du travail a lieu dans ce cycle de vie .Ici., N'expliquez que quelques - unes des étapes les plus importantes et les plus courantes :

img

Quand vous exécutez n'importe quelle phase , Toutes les phases précédentes seront exécutées , C'est pour ça qu'on a lancé mvn install Quand, Le Code sera compilé ,Tests,Emballez.En outre,Maven Le mécanisme plug - in est entièrement dépendant de MavenDu cycle de vie, Il est donc essentiel de comprendre le cycle de vie .

5、MavenPlug - in

  • Objectif du plug - in
    Maven Le noyau de l'abstraction ne définit que le cycle de vie , Les tâches spécifiques sont confiées au plug - in
  • Chaque plug - in permet plusieurs fonctions , Chaque fonction est une cible de plug - in
  • Maven Le cycle de vie de est lié à la cible du plug - in , Pour accomplir une tâche de construction spécifique, par exemple compileC'est le plug - in.maven-compiler-plugin Une cible plug - in pour .Par exemple:mvn compile Ou écrire tout mvn compiler :compile

image-20210924152722238

版权声明
本文为[Directeur d'usine Java]所创,转载请带上原文链接,感谢
https://javamana.com/2021/10/20211013211944097t.html

  1. What are the new features of Java 10?
  2. What are the new features of Java 9?
  3. Is the report too ugly? Try this open source project reportplus!
  4. Spring 2021 report released: who is the real brother?
  5. À bientôt, docker.
  6. Recommend a super easy to use markdown editor
  7. Java 17 new features overview
  8. New developer friendly features after Java 8
  9. Concise and efficient eclipse collections API
  10. Practice of deploying spring boot microservices on kubernetes
  11. Garbage collectors in the new JDK: Shenandoah, ZGC and improved G1
  12. À bientôt, docker.
  13. Oracle exécute le format syntaxique d'une procédure stockée ou d'un lot
  14. [Azure Cloud Service] Azure Cloud Service ajoute des champs personnalisés pour le rôle Web (hôte IIS) (ajoute le champ user agent dans l'en - tête de demande http au Journal de sortie IIS)
  15. The Linux kernel will be implemented with the latest zstd
  16. JetBrains publishes the raw data of the developer ecosystem survey in 2021
  17. Linux 5.16 will support KVM and disable amd PSF function
  18. Linux 5.16 brings DisplayPort 2.0 initial support for amdgpu driver
  19. Announcement of the election results of the technical advisory committee of the Linux foundation in 2021
  20. Java虚拟机|JVM【适合初学者入门】
  21. Spring Cloud 2021.0.0-M2 发布
  22. [Azure Cloud Service] Azure Cloud Service ajoute des champs personnalisés pour le rôle Web (hôte IIS) (ajoute le champ user agent dans l'en - tête de demande http au Journal de sortie IIS)
  23. Spring Cloud 2021.0.0-M2 發布
  24. Java虛擬機|JVM【適合初學者入門】
  25. Spring Cloud 2021.0.0-m2 Release
  26. Machine virtuelle Java | JVM [convient aux débutants]
  27. 10412 Xiaopeng cars announced sales results in September
  28. Apprendre le mécanisme des événements Java
  29. Java script RPC (07) - timeout timeout Processing from zero
  30. Introduction à la page Web de rabbitmq (3)
  31. MySQL read - Write Separation Cluster Construction and Integration with mycat
  32. Analyse du principe du conteneur du CIO printanier
  33. Java面向对象基础
  34. Java communique avec les capteurs industriels via socket et DTu, RTU
  35. Xiaopeng automobile delivered 10412 units in September, with a monthly sales volume of more than 10000 for the first time
  36. Java Object Oriented Foundation
  37. Introduction au développement Android PDF, un tour pour vous apprendre à comprendre netty
  38. Hadoop Foundation - 01 - concepts de base
  39. Hadoop Foundation - 02 - Basic Structure
  40. Hadoop Foundation - 03 - hdfs (Hadoop Distributed File System) Basic Concepts
  41. Hadoop Foundation - 04 - hdfs API Programming
  42. Hadoop Foundation - 05 - hdfs Project (word Frequency Statistics)
  43. Hadoop Foundation - 06 - hdfs Data Read and write
  44. The "monthly test" report card of the new car built under the lack of core: Xiaopeng and Weilai took the lead in "breaking 10000", and the ideal plummeted by 25%
  45. Introduction to making arch linux software package
  46. Hard core observation 407 HTTPS everywhere browser extension is about to retire
  47. How to use busybox on Linux
  48. In 2021, the talent incentive plan of Linux foundation open source software School Park was officially launched
  49. It's not windows or Linux. Shrink is the "God operating system"
  50. Install anydesk on Ubuntu Linux
  51. 2021, can we recommend using Linux to play games?
  52. not exist:org.springframework.kafka.listener.AbstractMessageListenerContaingetContainerProperties()
  53. Are you sure HTTPS is asymmetric encryption for content encryption? See the answers and reasons
  54. MySQL online slow log query
  55. Java JDK server installation
  56. 手把手教你使用Java开发在线生成pdf文档
  57. Questions d'entrevue dans la base de données MySQL (dernière version 2021)
  58. Java零基础小白入门必做题汇总(建议收藏)第一篇
  59. Day15 Java Foundation
  60. Day16 Java Foundation