JavaRush /Blog Java /Random-FR /Partie 4 : Bases de Maven

Partie 4 : Bases de Maven

Publié dans le groupe Random-FR
Ce matériel fait partie de la série « Introduction au développement d'entreprise ». Articles précédents : Partie 4. Bases de Maven - 1Maven est un outil de gestion et de construction de projets - un véritable assistant du programmeur Java. Il facilite la vie du développeur à toutes les étapes du travail : depuis la création de la structure du projet et la connexion des bibliothèques nécessaires jusqu'au déploiement du produit sur le serveur. Lorsque vous travaillez avec n'importe quel framework, vous devrez utiliser Maven. Examinons donc aujourd'hui ses principales fonctions et voyons comment elles doivent être utilisées.

Installation étape par étape de Maven

  1. Vous devez d’abord installer Maven en le téléchargeant à partir de ce lien .

  2. Ensuite, vous devez décompresser l'archive téléchargée et définir la variable d'environnement M2_HOME sur un lien vers l'emplacement de l'archive décompressée. Par exemple, C:\Program Files\maven\

  3. Pour vérifier que tout est installé, écrivez sur la ligne de commande :

    version mvn

  4. Si les informations de version de Maven, Java, etc. s'affichent, vous êtes prêt à partir.

  5. Ouvrez maintenant IntelliJIDEA et créez un nouveau projet. Dans la première fenêtre, sélectionnez Maven :

    Partie 4. Bases de Maven - 2
  6. Cliquez sur Suivant et remplissez la boîte de dialogue suivante :

    Partie 4. Bases de Maven - 3
  7. Ensuite, créez par défaut un projet à l'emplacement requis.

    Une fois le projet créé, faites attention à sa structure :

    Partie 4. Bases de Maven - 4
Voici la structure standard d'un projet Maven :
  • le dossier src/main/java contient des classes Java ;
  • dans src/main/resources - ressources utilisées par notre application (pages HTML, images, feuilles de style, etc.) ;
  • src/test - pour les tests.
Faites également attention au fichier appelé pom.xml . Il s'agit du fichier principal de gestion de Maven . La description complète du projet est contenue ici. Il n'y a pas encore beaucoup d'informations, mais nous allons les ajouter maintenant.

Gestion des dépendances dans Maven

Vous avez peut-être rencontré l'expression « gestionnaire de dépendances » ou « gestionnaire de dépendances ». Maven peut tout faire. Grâce à Maven, vous n'avez pas besoin de passer beaucoup de temps à rechercher la bibliothèque requise sur Internet, à la télécharger, puis à la connecter au projet : ajoutez simplement celle souhaitée à la liste des dépendances Maven. Les dépendances sont écrites dans le nœud XML des dépendances. Disons que vous avez besoin de la bibliothèque Apache Commons IO dans votre projet pour simplifier le travail avec les fichiers. Pour ajouter une bibliothèque, écrivez cinq lignes dans pom.xml :
<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Votre pom.xml devrait maintenant ressembler à ceci :
<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Après cela, autorisez IntelliJ IDEA à importer la dépendance (une boîte de dialogue devrait apparaître dans le coin inférieur droit). La bibliothèque est maintenant prête à être utilisée :
import org.apache.commons.io.FileUtils;

import java.io.File;

public class TestMaven {
   public static void main(String[] args) {
       File tempDirectory = FileUtils.getTempDirectory();
   }
}
Toutes les dépendances ultérieures doivent également être écrites dans la balise <dependencies>. Vous vous demandez peut-être : comment savoir quelles informations vous devez inclure sur une bibliothèque dans la balise <dependency> ? Tout est simple ici. Dans de tels cas, trois paramètres sont toujours spécifiés : groupId,artefactId et version. Vous pouvez connaître ces paramètres de deux manières :
  1. Sur le site de la bibliothèque. Si nous avons besoin d'Apache Commons IO, accédez au site officiel et sélectionnez l'onglet Informations sur les dépendances. Toutes les informations nécessaires sont ici - vous pouvez simplement les copier et les ajouter à notre section dépendances.

  2. Dans le dépôt Maven . Entrez « apache commons io » dans la recherche et vous verrez toutes les versions disponibles de la bibliothèque. Après avoir sélectionné celui dont vous avez besoin, copiez simplement :

    <dependency>
               <groupId>commons-io</groupId>
               <artifactId>commons-io</artifactId>
               <version>2.6</version>
           </dependency>

    et ajoutez à votre pom.xml.

Types de référentiels Maven

Cela vaut la peine de mentionner à nouveau le référentiel Maven, car nous en avons en fait deux - externe (global) et local, sur votre ordinateur. Toutes les bibliothèques que vous ajoutez à vos projets sont enregistrées dans le référentiel local. Lorsque Maven ajoute une dépendance requise à un projet, il vérifie d'abord dans le référentiel local la présence d'une telle bibliothèque, et seulement s'il ne la trouve pas là-bas, il se tourne vers le référentiel externe. Comme vous pouvez le constater, vous pouvez utiliser Maven pour ajouter des dépendances, mais ce n'est pas tout ce qu'il peut faire.

Construire un projet Java avec Maven

Cette fonctionnalité peut paraître inutile à un débutant. Pourquoi est-ce nécessaire s’il existe un IDE ? Mais non! Premièrement, le serveur sur lequel vous devrez construire l'application peut non seulement ne pas disposer d'un environnement de développement, mais également d'une interface graphique. Deuxièmement, sur les grands projets, Maven s'acquitte mieux des tâches d'assemblage du projet. Par conséquent, ne nous tourmentons pas d'attendre, mais considérons le processus de création d'une application à l'aide de Maven.

Phases

Le processus de création d'une application est appelé cycle de vie d'un projet Maven et se compose de phases. Vous pouvez les consulter dans IDEA en cliquant sur Maven>exemple>Cycle de vie dans le coin supérieur droit : Partie 4. Bases de Maven - 5Comme vous pouvez le voir, il y a 9 phases :
  1. clean - supprime tous les fichiers compilés du répertoire cible (l'endroit où les artefacts finis sont enregistrés) ;
  2. valider - vérifier si toutes les informations sont disponibles pour construire le projet ;
  3. compiler - les fichiers avec le code source sont compilés ;
  4. test — les tests sont lancés ;
  5. package - les fichiers compilés sont empaquetés (dans des archives jar, war, etc.) ;
  6. vérifier — des vérifications sont effectuées pour confirmer que le fichier compressé est prêt ;
  7. install - le package est placé dans le référentiel local. Il peut désormais être utilisé par d'autres projets comme bibliothèque externe ;
  8. site - la documentation du projet est créée ;
  9. déployer - l'archive collectée est copiée dans un référentiel distant.
Toutes les phases sont exécutées séquentiellement : vous ne pouvez pas démarrer, par exemple, la quatrième phase tant que les phases 1 à 3 ne sont pas terminées. Il existe deux manières de lancer une phase :
  • via la ligne de commande :

    paquet mvn

    Partie 4. Bases de Maven - 6
  • en utilisant Intellij IDEA :

    Partie 4. Bases de Maven - 7

    Avant le lancement du package, les phases de validation, de compilation et de test sont effectuées. L'exception est la phase propre. Il est conseillé de l'appeler avant chaque nouveau projet de construction. Les phases peuvent être répertoriées séparées par des espaces :

    paquet mvn propre.

De plus, chaque phase comporte des phases pré et post : par exemple, pré-déploiement, post-déploiement, pré-nettoyage, post-nettoyage, mais elles sont assez rarement utilisées. De plus, chaque phase a des objectifs. Les objectifs standards sont inclus par défaut, des objectifs supplémentaires sont ajoutés par les plugins Maven. Parfois, au cours d'une phase, vous devez exécuter des fonctionnalités supplémentaires. Il existe des plugins Maven pour cela. La liste des plugins officiels est disponible sur le site Maven . Mais sachez qu’il existe encore de nombreux plugins personnalisés que l’on peut trouver sur des ressources tierces. Bien sûr, s'il existe un besoin exotique, vous avez toujours la possibilité d'écrire vous-même un tel plugin .

Plugins

Pour ajouter un plugin Maven à un projet, sa description, similaire aux dépendances, doit être placée dans pom.xml dans les balises <build> et <plugins>. Par exemple, nous avons besoin d'un plugin pour vérifier que toutes nos bibliothèques externes utilisent les dernières versions. Après une petite recherche sur Internet, vous pouvez trouver ce plugin avec un mode d'emploi. Définissons son groupId, l'artefactId et la version. Écrivons quels objectifs il doit atteindre et à quelle phase. Dans notre cas, la vérification des dépendances dans le pom.xml actuel est définie sur la phase de validation. Maintenant, notre « mémoire » ressemble à ceci :
<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <build>
       <plugins>
           <plugin>
               <groupId>com.soebes.maven.plugins</groupId>
               <artifactId>uptodate-maven-plugin</artifactId>
               <version>0.2.0</version>
               <executions>
                   <execution>
                       <goals>
                           <goal>dependency</goal>
                       </goals>
                       <phase>validate</phase>
                   </execution>
               </executions>
           </plugin>
       </plugins>
   </build>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Nous pouvons toujours continuer à travailler sur notre projet. Mais essayons de changer la version d'Apache Commons IO en 2.0 et de commencer à construire le projet. Nous obtenons : [ERROR] Failed to execute goal com.soebes.maven.plugins:uptodate-maven-plugin:0.2.0:dependency (default) on project example: There is a more up-to-date version ( 2.6 ) of the dependency commons-io:commons-io:2.0 available. -> [Help 1] Nous avons ici une erreur de build provoquée par le plugin. Le message d'erreur indique que nous utilisons la version 2.0 alors que la 2.6 est disponible. En général, Maven est un outil très utile. Cela peut paraître difficile à utiliser au début, mais entraînez-vous, créez vos projets sous Maven, et au bout d'un moment vous serez très content du résultat. Cet article a délibérément omis de nombreux détails sur Maven - nous nous sommes concentrés sur l'essentiel. Mais il n'y a pas de limite à la perfection : vous pouvez en savoir plus sur Maven sur le site officiel du produit . Partie 5. Servlets. Écrire une application Web simple Partie 6. Conteneurs de servlets Partie 7. Présentation du modèle MVC (Model-View-Controller) Partie 8. Écrire une petite application Spring-boot
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION