CodeGym /Blog Java /Random-FR /Partie 4. Les bases de Maven
John Squirrels
Niveau 41
San Francisco

Partie 4. Les 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. Les bases de Maven - 1Maven est un outil de gestion et de création de projets - l'assistant utile d'un programmeur Java. Il facilite la vie des développeurs à chaque étape du travail : de la création de la structure du projet et de la connexion des bibliothèques nécessaires au déploiement du produit sur le serveur. Vous devrez utiliser Maven lorsque vous travaillez avec n'importe quel framework. Alors, aujourd'hui, jetons un coup d'œil à ses principales fonctions et voyons comment les utiliser.

Installation pas à pas de Maven

  1. Tout d'abord, nous devons installer Maven. Téléchargez-le à partir de ce lien .

  2. Ensuite, décompressez l'archive téléchargée et définissez la variable d'environnement M2_HOME sur l'emplacement de l'archive décompressée. Par exemple, C:\\Program Files\\maven\\

  3. Pour vous assurer que tout est installé, exécutez ce qui suit sur la ligne de commande :

    mvn -version

  4. Si les informations de version pour Maven, Java, etc. sont affichées, alors tout est prêt à fonctionner.

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

    Partie 4. Les bases de Maven - 2
  6. Cliquez sur "Suivant" et remplissez la fenêtre qui apparaît :

    Partie 4. Les bases de Maven - 3
  7. Ensuite, comme d'habitude, créez un projet où vous voulez.

    Une fois le projet créé, notez sa structure :

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

Gestion des dépendances dans Maven

Vous avez peut-être rencontré l'expression "gestionnaire de dépendances". Maven sait gérer les dépendances. Grâce à Maven, vous n'avez pas à passer beaucoup de temps à rechercher sur Internet une bibliothèque requise, à la télécharger, puis à la connecter à votre projet. Au lieu de cela, vous ajoutez simplement la bibliothèque requise à la liste des dépendances dans Maven.

Les dépendances sont spécifiées dans le nœud dependencies du fichier pom.xml

Supposons que vous ayez besoin de la bibliothèque Apache Commons IO dans votre projet afin de simplifier le travail avec les fichiers. Pour ajouter une bibliothèque, nous écrivons cinq lignes dans pom.xml :

<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Maintenant, votre fichier pom.xml devrait 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 suivantes doivent également être écrites à l'intérieur de la <dependencies>balise. Vous vous demandez peut-être comment trouver les informations sur la bibliothèque que vous devez indiquer à l'intérieur de la <dependency>balise. C'est facile. Trois paramètres doivent toujours être définis : "groupId", "artifactId" et "version". Il existe deux manières de déterminer ces paramètres :
  1. Sur le site de la bibliothèque. Si nous avons besoin de la bibliothèque Apache Commons IO, nous allons sur le site officiel et sélectionnons l'onglet "Informations sur la dépendance". Toutes les informations nécessaires sont ici - vous pouvez simplement les copier et les ajouter au <dependencies>nœud.

  2. Dans un dépôt Maven . Entrez "apache commons io" dans la barre de recherche et vous verrez toutes les versions disponibles de la bibliothèque. Après avoir sélectionné le bon, copiez simplement ce qui suit :

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

    et ajoutez-le à votre pom.xml.

Types de dépôts Maven

Il est intéressant pour nous de mentionner à nouveau les référentiels Maven, car nous en avons en fait deux : un référentiel distant (central) et un référentiel 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 si la bibliothèque existe déjà dans le référentiel local. Il accède au référentiel distant uniquement s'il ne trouve pas la bibliothèque localement. Comme vous pouvez le voir, 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 capacité peut sembler inutile à un débutant. Pourquoi en avons-nous besoin si nous avons un IDE ? Laisse-moi expliquer. Tout d'abord, le serveur sur lequel vous devez construire votre application peut n'avoir ni environnement de développement ni interface graphique. Deuxièmement, sur les grands projets, Maven fait un meilleur travail de construction du projet. Donc, sans plus tarder, nous allons considérer le processus de création d'une application à l'aide de Maven.

Étapes

Le processus de création d'une application est connu comme le 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. Les 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érifie si toutes les informations requises pour construire le projet sont présentes
  3. compile — compile les fichiers de code source
  4. test — démarre les tests
  5. package — regroupe les fichiers compilés (dans une archive JAR, WAR, etc.)
  6. vérifier — vérifie si le fichier empaqueté est prêt
  7. install — place le package dans le référentiel local. Maintenant, il peut être utilisé par d'autres projets en tant que bibliothèque externe
  8. site — crée la documentation du projet
  9. deploy — copie l'archive construite dans le dépôt distant
Toutes les phases sont exécutées séquentiellement : par exemple, la quatrième phase ne peut pas être démarrée tant que les phases 1 à 3 ne sont pas terminées. Il existe deux manières de démarrer une phase :
  • via la ligne de commande :

    paquet mvn

    Partie 4. Les bases de Maven - 6
  • en utilisant IntelliJ IDEA :

    Partie 4. Les bases de Maven - 7

    Avant le démarrage de la phase de package, les phases de validation, de compilation et de test sont effectuées. La phase propre est une exception. C'est une bonne idée d'exécuter cette phase avant chaque build du projet. Vous pouvez répertorier plusieurs phases en les séparant par des espaces :

    paquet propre mvn.

De plus, chaque phase a des pré- et post-phases : par exemple, pré-déploiement, post-déploiement, pré-nettoyage, post-nettoyage, etc. mais elles sont assez rarement utilisées. De plus, chaque phase a des objectifs. Les objectifs standards sont définis par défaut. Des objectifs supplémentaires sont ajoutés par les plugins Maven. Parfois, au cours d'une phase, vous devrez peut-être exécuter des fonctions supplémentaires. Il existe des plugins Maven pour cela. Une liste des plugins officiels peut être trouvée sur le site Web de Maven . Mais vous devez savoir qu'il existe de nombreux plugins personnalisés qui peuvent être trouvés sur des sites Web tiers. Et bien sûr, si un besoin exotique se fait sentir, vous pouvez toujours écrire vous-même un plug-in personnalisé .

Plugins

Pour ajouter un plugin Maven au projet, nous devons ajouter sa description au fichier pom.xml, en utilisant <build>et <plugins>les balises, de la même manière que nous avons ajouté des dépendances. Par exemple, supposons que nous ayons besoin d'un plugin pour vérifier que nous utilisons la dernière version de toutes nos bibliothèques externes. Après quelques recherches sur Internet, vous pouvez trouver ce plugin et des instructions sur son utilisation. Définissons le groupId, l'artefactId et la version. Nous indiquerons quels objectifs le plugin doit remplir et à quelle phase. Dans notre cas, la vérification des dépendances dans le pom.xml actuel est configurée pour se produire pendant la phase de validation. Maintenant, notre fichier pom.xml 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 pourrions continuer à travailler sur notre projet. Mais essayons de changer la version d'Apache Commons IO en 2.0 et de construire le projet. Nous aurons

[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]
Ici, nous avons une erreur de construction générée par le plugin. Le message d'erreur indique que nous utilisons la version 2.0 alors que la version 2.6 est disponible. Fondamentalement, Maven est un outil très utile. Peut-être que cela vous semblera difficile à utiliser au début, mais entraînez-vous ! Créez vos projets à l'aide de Maven, et après un certain temps, vous serez très satisfait du résultat final. Cet article a délibérément omis de nombreux détails sur Maven — nous nous sommes concentrés sur les plus essentiels. Mais il n'y a pas de limite à l'amélioration : vous pouvez en savoir plus sur Maven sur son site officiel . Partie 5. Servlets et l'API Java Servlet. Écrire une application Web simple Partie 6. Conteneurs de servlet Partie 7. Présentation du modèle MVC (Model-View-Controller)
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION