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.properties
dans lepom.xml
). - (optionnel) Le fichier
META-INF/archetype-metadata.xml
contient 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
.