Maven est largement connu comme un puissant outil d'automatisation de build, mais c'est bien plus que cela. Il s'agit d'un outil de gestion de projet complet qui simplifie l'ensemble du processus de construction, la gestion des dépendances et la génération de documentation. Dans cet article, nous explorerons divers aspects de Maven et comprendrons ses capacités en détail.
Principales fonctionnalités de Maven
1.Construire la génération
2.Gestion des dépendances
3.Documentation
Lorsque vous exécutez des commandes comme mvn build ou mvn déployer, Maven examine le fichier pom.xml, qui contient toutes les configurations, et agit en conséquence. Approfondissons la structure pom.xml et sa signification.
Le fichier POM
```
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">
4.0.0
<!-- Basic project information --> <groupId>com.example</groupId> <artifactId>my-app</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <!-- Properties --> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <spring.version>5.2.8.RELEASE</spring.version> </properties> <!-- Dependencies --> <dependencies> <!-- Spring Core --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <!-- Spring Context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!-- JUnit for testing --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <!-- Build configuration --> <build> <plugins> <!-- Compiler plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>${maven.compiler.source}</source> <target>${maven.compiler.target}</target> </configuration> </plugin> <!-- Surefire plugin for running tests --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> </plugin> </plugins> </build> <!-- Repositories --> <repositories> <repository> <id>central</id> <url>https://repo.maven.apache.org/maven2</url> </repository> </repositories> <!-- Distribution management for deployment --> <distributionManagement> <repository> <id>releases</id> <url>http://repo.mycompany.com/releases</url> </repository> <snapshotRepository> <id>snapshots</id> <url>http://repo.mycompany.com/snapshots</url> </snapshotRepository> </distributionManagement>
Décodeons le fichier POM :
**Le fichier pom.xml suit un schéma XML spécifique (défini dans xsi:schemaLocation:) qui garantit qu'il adhère à une structure correcte, que Maven vérifie. Voici un exemple :
<project 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">
Éléments clés :
POM parent :
Chaque fichier POM dans Spring Boot a un POM parent. Si aucun parent n'est défini, le super POM devient le parent.
GroupId, ArtifactId et version :
Ces éléments identifient de manière unique un projet dans Maven Central.
<groupId>com.example</groupId> <artifactId>my-app</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging>
<properties> <java.version>1.8</java.version> </properties> -
<repositories> <repository> <id>central</id> <url>https://repo.maven.apache.org/maven2</url> </repository> </repositories>
Dépendances : répertoriez les dépendances du projet.
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.3.4.RELEASE</version> </dependency> </dependencies>
Cycle de vie de construction Maven
Maven suit un cycle de vie de build spécifique qui se compose de plusieurs phases :
Valider :
Valide la structure du projet.
Compiler :
Convertit le code Java en bytecode (fichiers .class) et les place dans le dossier target/.
Test :
Exécute les cas de test situés dans le répertoire test/.
Forfait :
Génère des fichiers JAR/WAR à partir du bytecode compilé et les stocke dans le dossier target/.
Vérifier :
Vérifie l'intégrité du colis.
Installer :
Installe le package dans le référentiel local.
Déployer :
Télécharge le package vers un référentiel distant.
Personnalisation du processus de construction :
Maven offre la flexibilité d'ajouter des objectifs spécifiques à chaque phase de l'élément. Vous pouvez également créer et utiliser des plugins pour étendre les fonctionnalités de Maven.
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
*Installer avec maven : *
Il installe le fichier jar que nous avons créé en phase de compilation après avoir terminé le test, l'emballage et la vérification.
ici, il crée un dossier m2 dans lequel toutes les dépendances sont conservées. Nous pouvons modifier l'emplacement de ce dossier à partir de settings.xml sous
Déploiement avec Maven
La configuration du déploiement est spécifiée à l'intérieur de l'élément.
<distributionManagement> <repository> <id>internal.repo</id> <url>http://repo.mycompany.com/maven2</url> </repository> </distributionManagement>
Conseil : nous pouvons fournir les informations d'identification dans settings.xml dans le dossier .m2/repository.
Rester à jour avec Maven et maîtriser ses nuances peut améliorer considérablement la gestion de projet et développer les compétences en automatisation. N'oubliez pas que Maven est plus qu'un simple outil de construction : c'est le centre de commande du projet. Plongez en profondeur, explorez de nouveaux plugins et continuez à expérimenter. Plus nous nous engageons avec Maven, plus notre processus de développement devient puissant. Continuez à repousser les limites et laissez Maven s'occuper du reste : après tout, c'est comme avoir un couteau suisse pour vos besoins en matière de gestion de projet !
Merci beaucoup d'avoir lu, j'apprécierai vos précieux commentaires.
Dites-moi également dans les commentaires si vous rencontrez des plugins sympas.
N'oubliez pas d'aimer, de partager et de vous abonner.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!