Le Maven archetype pour les Nuls (1/2)

Deux petits posts pour vous présenter rapidement l'archetype Maven de manière basique.

Déjà qu'est ce qu'un archetype ? C'est un projet Maven template qui sert à créer d'autres projets Maven. En somme, c'est une sorte de factory qui permet de générer des artifacts Maven pré-configurés.

Tout utilisateur Maven a certainement déjà utilisé un archetype au moins une fois dans sa vie. Lorsque vous voulez créer un projet Maven, vous exécutez la commande :

mvn archetype:generate


Une longue liste d'archetypes s'affiche, et vous choisissez généralement l'archetype maven-archetype-quickstart (voir en bas de l'image)

blog_1.png

Cet archetype quickstart permet de créer des projets Maven basiques avec une configuration initiale minimale. Comme vous pouvez le constater dans la liste (qui n'est pas exhaustive dans l'image), il y a d'autres archetypes plus élaborés qui sont spécifiques à certains types de projets : jsf, struts, camel etc... Pourtant quelques fois, le besoin de créer des archetypes personnalisés (avec une configuration initiale que nous pourrons définir nous même) s'impose clairement.

Par exemple, dans notre pôle, nous utilisons les mêmes paramétrages dans plusieurs de nos projets : fichers de contexte Spring, TestNg et DBunit pour les tests unitaires, Log4J pour la journalisation etc... Puisqu'on crée de nouveaux projets très souvent, cela devenait contre-productif d'effectuer à chaque fois cette même configuration pour chacun de nos projets. Nous avons donc opté pour un archetype customisé, qui pourra générer des projets Maven avec une pré-configuration minimale des plugins que nous utilisons fréquemment.

Utiliser un archetype personnalisé peut donc permettre de gagner beaucoup de temps (à condition bien évidemment que chaque futur utilisateur comprenne et ait la main sur la configuration générée...)

Dans le prochain billet, je vais expliciter les étapes à suivre pour créer et utiliser un archetype personnalisé.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.