Navigate back to the homepage

Créer rapidement un projet Java avec Maven

Morgan Ridel
November 30th, 2017 · 3 min read
0 x 0

J’ai récemment découvert Maven, un outil d’automatisation de build permettant de rapidement créer et compiler des projets en Java tout en gérant les dépendances. Une sorte de Make dopé et plus simple à gérer. Je ne maîtrise pas tous les aspects de cet outil, mais nous allons voir comment rapidement créer un projet et gérer ses dépendances.

Installer Maven

Pour installer Maven, procurez-vous l’archive sur le site officiel et décompressez-la où bon vous semble, ce sera votre répertoire d’installation.

Afin que tout fonctionne pour le mieux, il faut vous assurer que votre variable d’environnement JAVA_HOME est bien configurée pour que Maven puisse utiliser le JDK.

Pour pouvoir utiliser Maven simplement depuis n’importe quel terminal vous devez ajouter le répertoire bin/ (du dossier d’installation décompressé) à votre variable d’environnement PATH.

Si vous ne savez pas comment vous y prendre, il existe de nombreuses explications sur Internet pour modifier ces variables, ainsi que les explications officielles.

Pour vérifier que vous pouvez utiliser Maven, ouvrez un terminal et tester la commande suivante:

1mvn -v

mvnversion

Créer un projet simple avec Maven

Vous pourriez créer à la main l’architecture d’un projet Maven mais il est bien plus simple d’utiliser le plugin “archetype” pour gagner du temps. Ce plugin permet de créer et d’utiliser des modèles de projets prédéfinis.

Placez vous juste là où vous souhaitez créer le nouveau projet et exécutez la commande:

1mvn archetype:generate

Le processus de création de projet interactif démarre alors et va vous demander le modèle de projet que vous souhaitez utiliser. Nous allons laisser la valeur par défaut correspondant au “maven-archetype-quickstart” (1085 pour moi) et juste appuyer sur Entrée.

mavenprojectmodel

On demande ensuite la version, laissez également la valeur par défaut (la plus récente).

Le prochain paramètre à renseigner est le groupId, c’est un identifiant supposé unique du projet. Il est conseillé de suivre la convention de nommage des packages Java. pour ma part je vais mettre “fr.morganridel.tutomaven”.

Ensuite, artifactId est le nom du jar obtenu par la compilation de votre projet (sans la version), je vais mettre “tuto-maven”.

Pour la version, on peut mettre “1.0”

Le package représente la hiérarchie où se trouve votre “main” c’est le package principal du projet, je vais simplement recopier le groupId.

Une fois le projet crée on se retrouve avec une arborescence classique de projet Maven:

  • Un dossier src/ contenant les sources du projet (main) et des tests (test) suivant la même structure de package.
  • Un fichier pom.xml à la racine, c’est le “project object model” qui contient toutes les informations du projet ainsi que ses dépendances.

La gestion des dépendances

Le pom.xml permet de très facilement gérer les dépendances de chaque projet Maven. En effet dans le projet créé précédemment, nous voyons que la dépendance JUnit est déjà prête par défaut. Ainsi, à la compilation, Maven saura qu’il aura besoin de JUnit pour compiler le projet et s’occupera de le télécharger si il n’est pas présent localement.

Par défaut, Maven ira télécharger les dépendances sur un dépôt en ligne si vous n’avez pas la dépendance. On peut par exemple retrouver JUnit sur le dépôt officiel avec le code à inclure dans votre pom.xml. La version étant également précisée, cela évite les conflits lors du partage du projet avec d’autres gens. Tous les gens travaillant sur le projet travailleront avec la même version de toutes les dépendances.

Localement les dépendances sont installées dans votre répertoire personnel dans le dossier .m2\repository. Vous pouvez également installer votre projet dans ce répertoire avec la commande mvn install, ce qui aura pour effet de packager votre projet, de le placer dans votre dépôt local, et donc de le rendre accessible en tant que dépendance pour d’autres projets.

Ce système de dépôt permet par exemple d’avoir un dépôt en ligne commun pour que les membres d’une entreprise puisse partager les même dépendances et y accéder facilement.

Les phases

Maintenant que vous savez créer un projet Maven et gérer ses dépendances, nous allons enfin pouvoir utiliser les options de build.

Maven utilise des ”cycles de vie” pour ses projets. Ceux-ci sont composés de phases.

Le cycle de vie “default” est entre autre composé des phases suivantes dans l’ordre: validate -> compile -> test -> package -> verify -> install -> deploy

Dans un projet, on peut demander l’exécution de n’importe quelle phase. Pour exécuter une phase, Maven exécutera automatiquement toutes les phases précédentes également.

Par exemple avec :

1mvn compile

Le projet sera validé, puis compilé.

mvn test compilera puis exécutera les tests.

Pour résumer

Avec seulement ces bases, il devient simple de gérer un projet en Java sans se casser la tête avec les dépendances et les paramètres du classpath.

Pour gérer un projet avec Maven il suffit de:

  • Créer le projet avec mvn archetype:generate
  • Préciser ses dépendances dans le pom.xml
  • Utiliser :
  • mvn compile pour compile
  • mvn test pour exécuter les tests
  • mvn package pour créer un jar du projet
  • mvn install pour rendre le projet disponible en tant que dépendance dans le dépôt local

More articles from Morgan Ridel

Mon blog : retour d'expérience après 1 an

Je publie aujourd'hui le 30ième article de mon blog ! J'en profite pour faire un petit retour d’expérience sur l'écriture de celui-ci. J'ai…

November 22nd, 2017 · 3 min read

Développer en suivant le cycle en V

Après avoir appris les bases de la programmation dans mon école, on nous a vite enseigné à suivre une méthode de développement de projets,…

November 16th, 2017 · 3 min read
© 2017–2022 Morgan Ridel
Link to $https://twitter.com/morganridelLink to $https://github.com/morganridelLink to $https://www.linkedin.com/in/morgan-ridel-017a9ab6/