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.