Fabriquer un archetype Maven
Cette page est une introduction minimale à la création d’archétypes Maven (des modèles de projets). Pour plus de détails, http://maven.apache.org/archetype/maven-archetype-plugin/
Pour créer un archétype Maven, il faut commencer par créer un répertoire de travail. Dans ce répertoire, créer un fichier
- archetype.properties
#Propriétés standards archetype.groupId=fr.univtln.login archetype.artifactId=myapp archetype.version=1.0-SNAPSHOT #Paramètres de filtrage archetype.languages=java #Propriétés personnelles scmURL=scm:git:ssh://git@lsis.univ-tln.fr/samplegit.git
qui contient des propriétés (standards ou non) et leur valeur par défaut. Quand l’archétype va être produit chaque valeur (par ex. fr.univtln.login) va être recherchée dans les fichiers java et remplacée par une variable (par ex. ${archetype.groupId})
(cf. http://maven.apache.org/archetype/maven-archetype-plugin/examples/create-with-property-file.html).
Dans ce répertoire, créer le projet qui servira de base, cela peut être fait en utilisant un archétype déjà existant avec la commande mvn archetype:generate. Le projet peut être modifié comme un projet classique (ajout de .gitignore, modification du pom.xml, …).
A partir de la racine de ce projet, l’exécution de la commande
mvn archetype:create-from-project -Darchetype.properties=../archetype.properties
produit l’archétype dans le répertoire target/generated-sources/archetype.
Les sources du modèle du projet se trouve dans target/generated-sources/archetype/src/main/resources/archetype-resources/
On peut vérifier que le squelette du code est correct :
- Supprimer si besoin les répertoires et fichiers inutiles (par exemple produits par l’IDE : le répertoire
.idea, les fichier.iml, …). - Certains fichiers peuvent être édités manuellement (ex. remplacer les valeurs par des variables du
archetype.propertiesdans lepom.xml). - (optionnel) Le fichier
META-INF/archetype-metadata.xmlcontient les paramètres de génération (produits en partie à partir duarchetype.properties). Ce ficher peut être éditer pour contrôler plus finement la génération.
L’archétype peut ensuite être installé (mvn install depuis target/generated-sources/archetype) dans le repository local (.m2/repository).
Il peut ensuite être testé localement en créant un projet depuis un autre répertoire avec mvn archetype:generate … (cf. Projet Java de base avec Maven pour le passage des paramètres).
L’archétype peut être déployé sur un repository partagé en ajoutant les paramètres de l’entrepôt Maven dans target/generated-sources/archetype/pom.xml (cf. Utiliser un repository Maven (Artifactory)) puis avec mvn deploy.