Maven - un outil de gestion essentiel pour les grands projets d'usine, de l'introduction à la maîtrise![️ Collection recommandée]

LongDi - IDEA 2021-10-14 05:07:29
maven outil gestion essentiel pour


Table des matières

Un.、MavenIntroduction

2.、MavenTéléchargement et installation

 Trois、MavenConcepts de base

(Un.)Entrepôt

(2.)Coordonnées

Quatre、Fait à la mainMavenProjets

Cinq、 IDEAGénérerMavenProjets

Six、 Gestion de la dépendance

 Sept、 Cycle de vie et plug - ins

Huit、 Développement et conception de modules

 Neuf、Agrégation

Dix、Succession

Onze、Propriétés

Douze、Gestion des versions

1. Version technique :

2. Accord sur le numéro de version du projet

XIII.、Allocation des ressources

​XIV.、 Configuration de développement Multi - environnements

Quinze.、Sauter le test

16.、Vêtements personnels


Un.、MavenIntroduction

(Un.)Analyse traditionnelle de l'état d'avancement de la gestion de projet

1.jar Les paquets ne sont pas uniformes ,jar Paquet incompatible

2.Le processus de mise à niveau et d'entretien du projet est fastidieux

(2.)MavenQu'est - ce que c'est??

1.MavenEst un outil de gestion de projet,Résumer le processus d'élaboration et de gestion du projet en un modèle d'objet de projet(POM)

2.POM (Project Object Model):Modèle d'objet du projet

(Trois)mavenLe rôle de:

1.Construction du projet:Standard、Une approche multi - plateforme de la construction de projets automatisés;

2.Gestion de la dépendance:Gestion facile et rapide des ressources dont dépend le projet(jarSac),Éviter les conflits de version entre les ressources

3. Structure unifiée de développement :Standard、 Structure unifiée du projet

 

2.、MavenTéléchargement et installation

  (Un.)MavenTélécharger

Télécharger l'adresse:Maven – Download Apache Maven

 

  (2.)MavenInstallation

Maven Appartient à la version verte du logiciel , Décompresser et installer

 

binTable des matières:maven Toutes les instructions opérationnelles ,Il y en a unmvn,En fait, c'est ce fichier qui fonctionne,Ouvrez ce fichier pour voir que vous devez configurer l'environnement suivant

bootTable des matières:Il y a unjarSac,- Oui.mavenChargeur de classe pour

configTable des matières:mavenProfil pour

libTable des matières:mavenDépendancesjarSac 

Le reste est un accord. 、Attention!

 (Trois)MavenConfiguration des variables d'environnement

1.DépendanceJava,Configuration requiseJAVA_HOME

2.ParamètresMAVEN Environnement opérationnel propre ,Configuration requiseMAVEN_HOME

 3. Résultats de la configuration de l'environnement d'essai    Directives:mvn -version

 Trois、MavenConcepts de base

(Un.)Entrepôt

        Entrepôt: Pour les ressources de stockage ,Contient une variété dejarSac

Classification des entrepôts :

Entrepôt local:Stockage des ressources sur votre propre ordinateur,Connectez - vous à l'entrepôt distant pour obtenir des ressources

Entrepôt distant:Entrepôt sur ordinateur non local,Fournir des ressources pour l'entrepôt local
                1.Entrepôt central:MavenEntretien de l'équipe,Stockage de toutes les ressources
                2.Vêtements personnels:Secteur/Stockage des ressources à l'échelle de l'entreprise,Obtenir des ressources de l'entrepôt central
Le rôle de la tenue privée :
        1.Enregistrer les ressources protégées par le droit d'auteur,Y compris ceux achetés ou développés indépendammentjar, Dans l'entrepôt central jarTout est Open Source,Impossible de stocker des ressources protégées par le droit d'auteur
        2. — Partage des ressources dans une certaine mesure , Ouvert uniquement à l'intérieur , Non partagé

(2.)Coordonnées

Qu'est - ce que les coordonnées?
MavenLes coordonnées sont utilisées pour décrire l'emplacement des ressources dans l'entrepôt Central Repository:
MavenLes coordonnées se composent principalement de
        groupld:Définir le courantMaven Nom de l'organisation affiliée au projet ( Habituellement, le nom de domaine est inversé ,Par exemple: org.mybatis)

        artifactld:Définir le courantMavenNom du projet( Généralement le nom du module ,Par exempleCRM、SMS)
        version:Définir le numéro de version actuel du projet
        packaging:Définir la façon dont le projet est emballé

Maven Rôle des coordonnées
Utiliser un identifiant unique ,Localisation unique des ressources,Grâce à cette identification, l'identification et le téléchargement des ressources peuvent être effectués par la machine

InsettingConfigurer les coordonnées miroir d'Alibaba Cloud dans le fichier

<mirrors>
<mirror>
<!-- Identificateur unique de ce miroir,Pour distinguermirrorÉlément -->
<id>nexus-aliyun</id>
<!-- Miroir de ce genre d'entrepôt( C'est un entrepôt de remplacement. )-->
<mirrorOf>central</mirrorOf>
<!-- Nom du miroir -->
<name>Nexus aliyun</name>
<!-- MiroirURL -->
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>

Quatre、Fait à la mainMavenProjets

MavenStructure du catalogue des projets:

 Insrc Créer sous le même répertoire pom.xml

 Maven Commandes de construction de projets

Maven Utilisation des commandes de construction mvnAu début, Ajouter un paramètre de fonction plus tard ,Plusieurs commandes peuvent être exécutées à la fois, Séparer avec des espaces
 

mvn compile #Compiler
mvn clean #Nettoyage
mvn test #Tests
mvn package #Emballez
mvn install #Installation dans un entrepôt local

Cinq、 IDEAGénérerMavenProjets

Exemple: Création à l'aide de prototypes webProjets,AjouterTomcatPlug - in

<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>80</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>

Six、 Gestion de la dépendance

1.Configuration dépendante

Les dépendances se réfèrent à ce qui est nécessaire pour le fonctionnement actuel du projetjar,Un projet peut définir plusieurs dépendances

Format:

<!--Définir tous lesjar-->
<dependencies>
<!-- Définir des dépendances spécifiques -->
<dependency>
<!-- Groupe dépendant id-->
<groupId></groupId>
<!-- Dépend du projet id-->
<artifactId></artifactId>
<!--Numéro de version dépendant-->
<version></version>
</dependency>
</dependencies>

2.Transmission dépendante

Dépendance transitoire ,Y compris la transmission directe et indirecte.
Transmission directe:Dépendances créées par la configuration des dépendances dans le projet actuel
Transmission indirecte :Ressources dépendantes si elles dépendent d'autres ressources,Le projet actuel dépend indirectement d'autres ressources

Problèmes de conflit liés à la transmission de la dépendance: Priorité du chemin :Quand la même ressource apparaît dans la dépendance,Plus la hiérarchie est profonde,,Priorité inférieure, Plus le niveau est bas ,Plus la priorité est élevée
Déclaration de priorité :Lorsque les ressources sont dépendantes au même niveau,Ordre de configuration ordre de superposition ordre de configuration ordre de superposition
Priorité spéciale :Lorsque les pairs ont configuré différentes versions de la même ressource, Configuration ultérieure Oui.

3.Dépendance facultative

Les dépendances optionnelles se réfèrent à la dissimulation des ressources actuellement dépendantes---------Opaque

<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<!--Ajouter la ligne suivante-->
<optional>true</optional>
</dependency>

 4.Exclure la dépendance

Exclure les dépendances signifie déconnecter activement les ressources dépendantes,Aucune version n'est requise pour les ressources exclues

<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<exclusions>
<exclusion>
<groupId></groupId>
<artifactId></artifactId>
</exclusion>
</exclusions>
</dependency>

5.Plage de dépendance

DépendantjarLes paquets peuvent être utilisés n'importe où par défaut,Peut passerscopeL'étiquette définit sa portée
Champ d'application:
La portée du programme principal est valide (main Dans le dossier )
La portée de la procédure d'essai est valide (test Dans le dossier )
Participer ou non à l'emballage (package Dans le dossier )

 La plage de dépendance est transitoire(Une ressource avec une plage de dépendances au moment de la transmission,La portée de l'action sera affectée)

 Sept、 Cycle de vie et plug - ins

MavenLe cycle de vie de la construction d'un projet décrit le nombre d'événements qui se sont produits au cours d'un processus de construction


MavenLe cycle de vie de la construction du projet est divisé en3Ensemble
clean:Travaux de nettoyage      Cycle de vie:pre-clean ===>clean ===>post-clean
default:Travaux de base, Par exemple, compilation 、Tests、Emballez、Déploiement, etc.


site: Production de rapports , Site de publication, etc.

 Cycle de vie:pre-site ===>site ===>post-site ===>site-deploy

Plug - in:
Les plug - ins sont liés aux phases du cycle de vie,Exécuter la fonction plug - in correspondante lors de l'exécution du cycle de vie correspondant

Par défautmavenIl y a des fonctions prédéfinies liées à chaque cycle de vie

Les plug - ins vous permettent de personnaliser d'autres fonctionnalités
 

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
<phase> generate-test-resources</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>

Huit、 Développement et conception de modules

Développement d'un projet en plusieurs modules(pojo,dao,service,controller)

 Neuf、Agrégation

Action: Agrégation pour une construction rapide MavenIngénierie,Construire plusieurs projets à la fois/Module.
Mode de production : Créer un module vide , Le type d'emballage est défini comme suit: pom

<packaging>pom</packaging>

Définit le nom d'un autre module auquel le module actuel est associé lors d'une opération de construction

<modules>
<module> Adresse du module </module>
<module> Adresse du module </module>
<module> Adresse du module </module>
<module> Adresse du module </module>
</modules>

Attention!:L'ordre final d'exécution des modules participant à l'opération d'agrégation est lié aux dépendances entre les modules, Indépendamment de l'ordre de configuration

Dix、Succession

Action:L'héritage permet de suivre la configuration du projet parent dans le projet Enfant
Mode de production :Dans un sous - projet, les coordonnées du projet parent de la vie et l'emplacement correspondant

<!--Le projet parent qui définit le projet-->
<parent>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<!-- Remplir le projet parent pomDocumentation-->
<relativePath>Projet parentpomAdresse du document</relativePath>
</parent>

Définir la gestion des dépendances dans le projet parent

<!--Déclarez ici pour la gestion des dépendances-->
<dependencyManagement>
<!-- Dépendance spécifique -->
<dependencies>
<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</dependency>
</dependencies>
</dependencyManagement>

Utilisation dépendante de l'héritage :Définir les dépendances dans les sous - projets, Aucune version dépendante n'a besoin d'être déclarée ,La version fait référence à la version dépendante dans le projet parent

<dependencies>
<dependency>
<groupId></groupId>
<artifactId></artifactId>
</dependency>
</dependencies>

Ressources héritées :

 Similitudes et différences entre l'agrégation et l'héritage:

Action:Agrégation pour la construction rapide de projets, Hériter pour une configuration rapide
Même chose.:
Agrégation et héritage pom.xml Les fichiers sont emballés pom,Vous pouvez faire les deux relations ensemblepomDans le document
L'agrégation et l'héritage sont des modules de conception,Il n'y a pas de contenu de module réel

C'est différent.:

L'agrégation est la configuration des relations dans le module courant,L'agrégation permet de percevoir quels sont les modules impliqués dans l'agrégation
L'héritage consiste à configurer les relations dans un sous - module,Le module parent ne peut pas savoir quels sous - modules héritent d'eux - mêmes

Onze、Propriétés

1.Propriétés personnalisées

Action: équivalent à définir une variable , Entretien facile et uniforme
Définir le format:

<!--Définir les attributs personnalisés-->
<properties>
<spring.version>5.1.9.RELEASE</spring.version>
<junit.version>4.12</junit.version>
</properties>

 Format d'appel:

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>

2.Propriétés intégrées

Action:UtiliserMavenPropriétés intégrées,Configuration rapide
Format d'appel:

${basedir}
${version}

3.SettingPropriétés

Action:UtiliserMavenProfilsetting.xml Propriétés de l'étiquette dans , Pour la configuration dynamique
Format d'appel:

${settings.localRepository}

4.JavaPropriétés du système

Action:LireJavaPropriétés du système
Format d'appel:

${user.home}

Méthode de requête des attributs du système :

mvn help:system

5. Propriétés des variables d'environnement

Action:UtiliserMavenProfilsetting.xml Propriétés de l'étiquette dans , Pour la configuration dynamique
Format d'appel:

${env.JAVA_HOME}

Méthode d'interrogation des propriétés des variables d'environnement:

mvn help:system

Douze、Gestion des versions

1. Version technique :

SNAPSHOT(Version Snapshot)

1.Pendant l'élaboration du projet,Pour faciliter le travail d'équipe,Résoudre les problèmes d'interdépendance et de mise à jour temporelle entre les modules,Quand les développeurs construisent chaque module,La version temporaire de la sortie s'appelle la version Snapshot( Version de la phase d'essai )
2.La version Snapshot est mise à jour au fur et à mesure que le développement progresse

RELEASE(Version de publication)

Une fois que l'élaboration du projet a atteint les jalons de la phase d'entrée en vigueur,Publier une version plus stable à l'extérieur de l'équipe,Les fichiers de composants correspondant à cette version sont stables,Même avec le développement ultérieur de la fonctionnalité,Ni modifier le contenu de la version actuelle,Cette version s'appelle la version de publication

2. Accord sur le numéro de version du projet

1.  <Version principale>.<Sous - version>.<Version incrémentale>.< Version Milestone >
2.  Version principale:Représente un changement dans l'architecture importante du projet,Par exemple:: spring5Par rapport àspring4Itération de

3.  Sous - version:Indique qu'il y a des ajouts et des changements importants à la fonctionnalité,Ou corriger complètement et systématiquement la version incrémentale de vulnérabilité:Indique une correction pour une vulnérabilité majeure
4. Version Milestone :Indiquer les jalons d'une version( Version interne ).Une telle version est comparée à la prochaine version officielle,Relativement peu stable, Plus de tests à effectuer

XIII.、Allocation des ressources

Référence du profil pomPropriétés
Action:Charger dans n'importe quel profilpom Propriétés définies dans le fichier
Format d'appel

${Adresse}

Activer le chargement du profil pomPropriétés

<!--Informations pour le fichier de ressources de configuration-->
<resources>
<resource>
<!--Définir le Répertoire de localisation correspondant au profil,Prise en charge de l'utilisation des propriétés pour définir dynamiquement les chemins-->
<directory>Adresse</directory>
<!--Activer le filtrage de chargement des ressources pour le profil-->
<filtering>true</filtering>
</resource>
</resources>

XIV.、 Configuration de développement Multi - environnements

<!-- Créer plusieurs environnements -->
<profiles>
<!-- Définir un environnement spécifique :Environnement de production-->
<profile>
<!--Définir un nom unique pour l'environnement-->
<id> Nom de l'environnement de développement 1</id>
<!--Définir des valeurs d'attributs spécifiques dans l'environnement-->
<properties>
<jdbc.url>jdbcLiens</jdbc.url>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- Définir un environnement spécifique :Environnement de développement-->
<!-- Le format est le même que ci - dessus. -->
</profiles>

Charger la configuration d'environnement spécifiée :

Format d'appel:mvn Directives -p Définition de l'environnement id

Exemple: mvn install -p pro_env

Quinze.、Sauter le test

Sauter le test avec la commande:mvn Directives -D skipTests

Attention!:Le cycle de vie de l'instruction exécutée doit comprendre une phase d'essai

Sauter le test en utilisant la configuration:

16.、Vêtements personnels

1.NexusTélécharger:Download

Démarrer la commande serveur :nexus.exe /run nexus

Démarrage terminé

 Modifier les informations de configuration de base:
Sous le chemin d'installationetcDans la table des matièresnexus-default.properties Fichier enregistré avec nexus Informations de configuration de base ,Par exemple, le port d'accès par défaut
Modifier les informations de configuration d'exécution du serveur:
Sous le chemin d'installationbinDans la table des matièresnexus.vmoptions Fichier enregistré avec nexusInformations de configuration pour le démarrage du serveur,Par exemple, l'espace mémoire par défaut

2. Classification des entrepôts

Entrepôt d'accueilhosted
        Conserver les ressources qui ne peuvent être obtenues de l'entrepôt central
                        1.Recherche et développement indépendants
                        2. Projets tiers non Open Source
Entrepôt d'agents proxy
         Agent entrepôt distant ,Adoptionnexus Accès à d'autres entrepôts publics , Par exemple, entrepôt central
Groupe des entrepôts group
        Grouper plusieurs entrepôts en un seul groupe,Configuration simplifiée
        Le Groupe entrepôt ne peut pas enregistrer la ressource, Appartient à l'entrepôt de conception

3.Téléchargement de ressources

Fournir les informations correspondantes lors du téléchargement de la ressource
1. Emplacement enregistré (Entrepôt d'accueil)             2.Fichiers de ressources           3. Coordonnées correspondantes

4. Accéder à la configuration du service privé ( Accès à l'entrepôt local services privés )

Configurer l'accès de l'entrepôt local au service privé(setting.xml)

 Configurer la source de ressources de l'entrepôt local(setting.xml) 

 5. Accéder à la configuration du service privé ( Service privé d'accès au projet )

Configurer l'emplacement d'enregistrement du projet actuel pour accéder aux ressources de téléchargement du service privé(pom.xml)

Publier des commandes de ressources en services privés

mvn deploy
版权声明
本文为[LongDi - IDEA]所创,转载请带上原文链接,感谢
https://javamana.com/2021/10/20211013211842777b.html

  1. Java虚拟机|JVM【适合初学者入门】
  2. [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)
  3. Spring Cloud 2021.0.0-M2 發布
  4. Java虛擬機|JVM【適合初學者入門】
  5. Spring Cloud 2021.0.0-m2 Release
  6. Machine virtuelle Java | JVM [convient aux débutants]
  7. 10412 Xiaopeng cars announced sales results in September
  8. Apprendre le mécanisme des événements Java
  9. Java script RPC (07) - timeout timeout Processing from zero
  10. Introduction à la page Web de rabbitmq (3)
  11. MySQL read - Write Separation Cluster Construction and Integration with mycat
  12. Analyse du principe du conteneur du CIO printanier
  13. Java面向对象基础
  14. Java communique avec les capteurs industriels via socket et DTu, RTU
  15. Xiaopeng automobile delivered 10412 units in September, with a monthly sales volume of more than 10000 for the first time
  16. Java Object Oriented Foundation
  17. Introduction au développement Android PDF, un tour pour vous apprendre à comprendre netty
  18. Hadoop Foundation - 01 - concepts de base
  19. Hadoop Foundation - 02 - Basic Structure
  20. Hadoop Foundation - 03 - hdfs (Hadoop Distributed File System) Basic Concepts
  21. Hadoop Foundation - 04 - hdfs API Programming
  22. Hadoop Foundation - 05 - hdfs Project (word Frequency Statistics)
  23. Hadoop Foundation - 06 - hdfs Data Read and write
  24. 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%
  25. Introduction to making arch linux software package
  26. Hard core observation 407 HTTPS everywhere browser extension is about to retire
  27. How to use busybox on Linux
  28. In 2021, the talent incentive plan of Linux foundation open source software School Park was officially launched
  29. It's not windows or Linux. Shrink is the "God operating system"
  30. Install anydesk on Ubuntu Linux
  31. 2021, can we recommend using Linux to play games?
  32. not exist:org.springframework.kafka.listener.AbstractMessageListenerContaingetContainerProperties()
  33. Are you sure HTTPS is asymmetric encryption for content encryption? See the answers and reasons
  34. MySQL online slow log query
  35. Java JDK server installation
  36. 手把手教你使用Java开发在线生成pdf文档
  37. Questions d'entrevue dans la base de données MySQL (dernière version 2021)
  38. Java零基础小白入门必做题汇总(建议收藏)第一篇
  39. Day15 Java Foundation
  40. Day16 Java Foundation
  41. Day17 Java Foundation
  42. Day18 Java Foundation
  43. Linux installe JDK 1.8 et configure les variables d'environnement
  44. Tutoriel d'utilisation Maven super détaillé
  45. Spring boot reads project parameter configuration
  46. Docker installing rocketmq
  47. Java Zero Basic small white Beginner must make a summary of issues (recommended Collection) Chapitre 1
  48. Manuel pour vous apprendre à utiliser le développement Java pour générer des documents PDF en ligne
  49. 40 + comment les femmes s'habillent - elles pour montrer leur jeunesse?Un manteau et une jupe vous donnent un look haut de gamme tout au long de l'automne et de l'hiver
  50. Tutoriel d'installation Ubuntu 16.04 / Hadoop 3.1.3Configuration autonome / pseudo - distribuée
  51. L'apprentissage le plus détaillé de springboot à l'échelle du réseau - day01
  52. L'apprentissage le plus détaillé de springboot sur le Web - day02
  53. L'apprentissage le plus détaillé de springboot sur le Web - day03
  54. L'apprentissage le plus détaillé de springboot sur le Web - day04
  55. Tutoriel d'utilisation Maven super détaillé
  56. L'apprentissage le plus détaillé de springboot sur le Web - day05
  57. L'apprentissage le plus détaillé de springboot sur le Web - day06
  58. L'apprentissage le plus détaillé de springboot sur le Web - day07
  59. Introduction to JavaScript - write a photo album for your girlfriend
  60. [Hadoop 3. X] HDFS storage type and storage strategy (V) overview