编程知识 cdmana.com

Tutoriel d'utilisation Maven super dé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://cdmana.com/2021/10/20211013211944097t.html

Scroll to Top