Tutoriel Maven: tout ce que vous devez savoir pour commencer

Ce tutoriel de blog sur Maven couvre tout ce que vous devez savoir pour démarrer avec Maven pour construire vos projets.

Au lieu d'écrire de longs scripts pour construire vos projets et télécharger manuellement les dépendances, pourquoi ne pas utiliser Maven et vous débarrasser de ce désordre. Ce tutoriel de blog sur Maven couvrira tout ce dont vous avez besoin pour commencer à utiliser Maven pour votre projet. Après avoir bien compris ce tutoriel Maven, la prochaine étape probable sera d'apprendre Jenkins qui couvre la phase d'intégration continue de .

Dans ce blog sur le tutoriel Maven, nous aborderons les sujets suivants:



  1. Pourquoi avons-nous besoin de Maven?
  2. Qu'est-ce que Maven?
  3. Architecture de Maven
  4. Cycle de vie, phases et objectifs de Maven
  5. Projet de démonstration.

Pourquoi avons-nous besoin de Maven?

Si vous travaillez sur des projets Java, la plupart du temps, vous avez besoin de dépendances. Les dépendances ne sont que des bibliothèques ou des fichiers JAR. Vous devez les télécharger et les ajouter manuellement. De plus, la tâche de mise à niveau de la pile logicielle de votre projet a été effectuée manuellement avant Maven. Il y avait donc un besoin pour un meilleur outil de construction capable de gérer ces problèmes.



C'est là que Maven entre en scène. Maven peut résoudre tous vos problèmes liés aux dépendances. Il vous suffit de spécifier les dépendances et la version du logiciel que vous souhaitez dans le fichier pom.xml de Maven et Maven se chargera du reste.Alors maintenant, essayons de comprendre ce qu'est exactement Maven.

Qu'est-ce que Maven?

Le projet Maven est développé par Apache Software Foundation où il faisait auparavant partie du projet Jakarta. Maven est un puissant outil d'automatisation de construction qui est principalement utilisé pour les projets Java. Maven vous aide à aborder deux aspects critiques de la création de logiciels -



  • Il décrit comment le logiciel est construit
  • Il décrit les dépendances.

Maven préfère la convention à la configuration. Maven télécharge dynamiquement les bibliothèques Java et les plug-ins Maven à partir d'un ou plusieurs référentiels tels que le référentiel central Maven et les stocke dans un cache local. Les artefacts des projets locaux peuvent également être mis à jour avec ce cache local. Maven peut également vous aider à créer et à gérer des projets écrits en C #, Ruby, Scala et d'autres langages.

Le fichier de modèle d'objet de projet (POM) est un fichier XML qui contient des informations relatives au projet et des informations de configuration telles que les dépendances, le répertoire source, le plugin, les objectifs, etc. utilisés par Maven pour construire le projet. Lorsque vous exécutez une commande maven, vous donnez à maven un fichier POM pour exécuter les commandes. Maven lit le fichier pom.xml pour accomplir sa configuration et ses opérations.

Objectifs de Maven

Objectifs de Maven

Quand quelqu'un devrait-il utiliser Maven?

    1. S'il y a trop de dépendances pour le projet.
    2. Lorsque la version de dépendance est fréquemment mise à jour.
    3. Les builds, l'intégration et les tests continus peuvent être facilement gérés à l'aide de maven.
    4. Lorsque l'on a besoin d'un moyen simple de générer de la documentation à partir du code source, de compiler le code source, de conditionner le code compilé dans des fichiers JAR ou des fichiers ZIP.

Architecture de Maven

Cycle de vie, phases et objectifs de Maven

1. Cycle de vie Maven



Il existe un cycle de vie spécifique que Maven suit pour déployer et distribuer le projet cible.

Il existe trois cycles de vie intégrés:

  • défaut - C'est le cycle de vie principal de Maven car il est responsable du déploiement du projet.
  • nettoyer - Ce cycle de vie est utilisé pour nettoyer le projet et supprimer tous les fichiers générés par la construction précédente.
  • site - L’objectif de ce cycle de vie est de créer la documentation du site du projet.

Chaque cycle de vie est composé d'une séquence de phases. Le cycle de vie de build par défaut se compose de 23 phases car il s'agit du cycle de vie de build principal de Maven

D'autre part, le cycle de vie propre se compose de 3 phases, tandis que le cycle de vie du site est composé de 4 phases.

les fonctions qui ne diffèrent que par leur type de retour ne peuvent pas être surchargées

2. Phases Maven

Une phase Maven n'est rien d'autre qu'une étape du cycle de vie de la construction Maven. Chaque phase exécute une tâche spécifique.

Voici quelques phases importantes du cycle de vie de build par défaut -

  • valider - Cette phase vérifie si toutes les informations nécessaires à la construction sont disponibles
  • compiler - Cette phase compile le code source
  • test-compilation - Cette phase compile le code source du test
  • tester - Cette phase exécute des tests unitaires
  • paquet - Cette phase a compilé le code source dans le format distribuable (jar, war)
  • test d'intégration - Cette phase traite et déploie le package si nécessaire pour exécuter des tests d'intégration
  • installer - Cette phase installe le package dans un référentiel local
  • déployer - Cette phase copie le package dans le référentiel distant

Maven exécute les phases dans un ordre spécifique. Cela signifie que si nous exécutons une phase spécifique à l'aide de la commande telle que mvn, cela n'exécutera pas seulement la phase spécifiée, mais toutes les phases précédentes également.

Par exemple, si vous exécutez la commande mvn deploy, c'est-à-dire la phase de déploiement qui est la dernière phase du cycle de vie de construction par défaut, toutes les phases antérieures à la phase de déploiement seront également exécutées.

3. Objectifs Maven

Une séquence d'objectifs constitue une phase et chaque objectif exécute une tâche spécifique. Lorsque vous exécutez une phase, Maven exécute tous les objectifs dans un ordre associé à cette phase. La syntaxe utilisée est plugin: goal. Certaines des phases et les objectifs par défaut qui leur sont liés sont les suivants:

  • compilateur: compilation - phase de compilation
  • compilateur: test - phase de test-compilation
  • surefire: test - phase de test
  • installer: installer - phase d'installation
  • jar and war: war - phase de paquet

Un plugin Maven est un groupe d'objectifs. Cependant, ces objectifs ne sont pas nécessairement tous liés à la même phase.Par exemple, le plugin Maven Failsafe qui est responsable de l'exécution des tests d'intégration. Pour les tests unitaires, vous avez besoin du plugin Maven surefire.

Projet démo

Dans cette section du Maven tutoriel, nous allons jeter un œil à un projet de démonstration. Pour montrer comment construire un projet à l'aide de Maven, j'ai créé un Projet Java avec TestNG utilisant Eclipse IDE. C'est un programme très simple où j'ai écrit du code pour tester le titre d'un site Web.

Le programme lancera automatiquement un navigateur Web, naviguera vers le site Web mentionné dans le code, récupérera le titre de cette page Web et le comparera avec le titre attendu. Si le titre réel et le titre attendu correspondent, le scénario de test réussit sinon il échoue.

comment compiler des codes java

Donc, pour ce projet, vous avez besoin , Maven et Eclipse téléchargés sur votre système. Les versions que j'utilise sur mon système sont les suivantes -

  1. Éclipse - Édition Entreprise version 4.12.0 (2019-06)
  2. Java - version 1.8.0_211
  3. Maven - la version 3.6.1
  • En dehors de cela, vous devez télécharger le plugin TestNG pour Eclipse et vous pouvez le télécharger en suivant les étapes suivantes -
    • Ouvrez Eclipse et accédez à l'aide. Dans Aide, cliquez sur le marché Eclipse.
    • Tapez TestNG dans la case Rechercher et cliquez sur Aller. Dans les résultats, vous verrez «TestNG for Eclipse». Vous devez le télécharger.
  • Après avoir configuré votre système avec les éléments mentionnés ci-dessus, vous êtes prêt à créer un projet de démonstration à l'aide de Maven. Alors maintenant, je vais vous dire toutes les étapes nécessaires pour ce faire.
    • Dans Eclipse, cliquez sur Fichier -> Nouveau -> Projet Maven.
    • Cliquez sur Créer un projet simple (ignorer la sélection d'archétype) puis cliquez sur suivant.
  • Vous verrez maintenant une fenêtre avec des paramètres tels que l'ID de groupe, l'ID d'artefact, etc.
    • L'ID de groupe est l'ID unique d'un groupe propriétaire du projet.
    • Artifact Id est le nom de l'unité de compilation finale.
    • Version est la version de l'artefact créé. SNAPSHOT indique un travail en cours.
    • L'emballage peut être en pot, en guerre ou en pom selon votre projet. Pour notre projet, nous sélectionnerons jar. Donnez ensuite le nom de votre projet.

  • Une fois que vous avez créé le projet, vous verrez la structure du projet de votre projet Maven. Ici vous pouvez voir les choses suivantes -
    • pom.xml
    • src et cible
    • src / main / java
    • src / test / java
    • Dépendances Maven
  • Créez maintenant un fichier de classe dans src / main / test et nommez-le DemoClass. Cette classe contient le code Selenium que nous utilisons pour les tests. Nous avons maintenant ajouté Selenium, les dépendances TestNG et le compilateur Maven et le plugin Surefire au fichier pom.xml. Le code pour DemoClass et pom.xml est donné ci-dessous:
package maven.selenium.testng import org.openqa.selenium.WebDriver import org.openqa.selenium.chrome.ChromeDriver import org.testng.annotations.Test public class DemoClass {@Test public void test () jette InterruptedException {// déclaration et instanciation d'objets / variables //System.setProperty('webdriver.gecko.driver','/home/edureka/Downloads/geckodriver ') // WebDriver driver = new FirefoxDriver () // commenter les 2 lignes ci-dessus et décommenter ci-dessous 2 lignes pour utiliser Chrome System.setProperty ('webdriver.chrome.driver', 'C: UsersArvind PhulareDesktopchromedriver.exe') WebDriver driver = new ChromeDriver () String baseUrl = 'http://newtours.demoaut.com/' String expectedTitle = 'Welcome: Mercury Tours' String actualTitle = '' // lancez Fire fox et dirigez-le vers l'URL de base driver.get (baseUrl) // récupère la valeur réelle du titre actualTitle = driver.getTitle () Thread.sleep (3000 ) / * * comparez le titre réel de la page avec celui attendu et imprimez * le résultat comme 'Réussi' ou 'Échec' * / if (actualTitle.contentEquals (expectedTitle)) {System.out.println ('Test réussi!')} else {System.out.println ('Test Failed')} // ferme Fire fox driver.close ()}}
4.0.0 maven.selenium maven.selenium.testng 0.0.1-INSTANTANÉ EdurekaDemo 2.53.1 6.9.10 org.apache.maven.plugins maven-compiler-plugin 1.8 1.8 org.apache.maven.plugins maven-surefire-plugin 2.18 .1 testng.xml org.seleniumhq.selenium selenium-java 3.141.59 org.testng testng 6.14.3 test
  • Avant d'exécuter le projet, nous devons convertir le fichier de classe DemoClass en fichier TestNG. Pour ce faire, faites un clic droit sur DemoClass -> TestNG -> Convertir en TestNG.

  • Maintenant, pour exécuter le projet, cliquez avec le bouton droit sur un projet -> Exécuter en tant que -> Maven clean. Cela effacera le projet en supprimant toutes les versions précédentes.

  • Après le nettoyage de Maven, vous devez tester le projet puisque nous avons écrit le code pour tester l'application Web. Alors faites un clic droit sur projet -> Exécuter en tant que -> Test Maven. Cela ouvrira le site Web et correspondra au titre du site Web. Si cela correspond, notre scénario de test passera.

  • Nous pouvons également exécuter les commandes ci-dessus à l'aide d'une invite de commande. Pour cela, nous avons besoin du chemin du fichier pom.xml.

    • Vous pouvez obtenir le chemin en cliquant avec le bouton droit sur le fichier pom.xml -> Propriétés -> Emplacement.
    • Copiez le chemin, puis ouvrez une invite de commande et collez-la à l'aide de cd. cd C: / Utilisateurs / Arvind Phulare / eclipse-workspace / maven.selenium.testng.
    • Une fois que vous faites cela, vous pouvez à nouveau taper les commandes Maven telles que mvn clean et mvn test.

Alors ça y est de mon côté dans ce blog sur le tutoriel Maven. J'espère que vous avez compris les choses dont nous avons discuté dans ce tutoriel Maven.

Maintenant que vous avez compris ce tutoriel Maven, consultez ceci par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Le cours de formation à la certification Edureka DevOps aide les apprenants à comprendre ce qu'est DevOps et à acquérir une expertise dans divers processus et outils DevOps tels que Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack et GIT pour l'automatisation de plusieurs étapes dans SDLC.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de ce tutoriel Maven et nous vous recontacterons