Creacion de Arquetipos Personalizados
Contenido
Estructura de un arquetipo
El arquetipo se implementa a través de un proyecto Maven y tiene una estructura básica bastante sencilla.
arquetipo-personalizado |-- pom.xml `-- src `-- main `-- resources |-- META-INF | `—maven | |-- archetype.xml (deprecado) | `-- archetype-metadata.xml `-- archetype-resources |-- pom.xml `-- ...
En el archivo pom.xml en el raiz del proyecto se configuran solamente los datos básicos, como el nombre del arquetipo y el paquete al que pertenece. Luego utilizaremos estos datos durante el proceso de creación de un proyecto nuevo.
En la carpeta maven se ubica el archivo de estructura del proyecto archetype-metadata.xml en el cual se configuran los archivos que se van a copiar durante el proceso de creación del proyecto. Ademas se pueden los submódulos que contiene el proyecto, en caso que el proyecto sea multimódulo.
La carpeta archetype-resources contiene todos los archivos y la estructura de carpetas a utilizar durante el proceso de creación.
archetype-metadata.xml
archetype-resources
Instalación del arquetipo
Para poder usar el arquetipo va a ser necesario primero instalarlo en el repositorio de código. Para ello hay que ejecutar:
mvn clean install
Nota: el comando clean no es necesario, pero puede evitarnos dolores de cabeza en caso que haya algún problema, al garantizar que se elimina la versión anterior del arquetipo.
Creación de proyecto usando el arquetipo
Para generar un proyecto nuevo utilizaremos la tarea archetype:generate a la cual se pasaremos los siguientes parámetros:
- archetypeGroupId: Nombre del paquete de arquetipos que vamos a utilizar
- archetypeArtifactId: Nombre del arquetipo
- archetypeVersion: Versión del arquitipo
- groupId: Paquete a utilizar en el proyecto nuevo
- artifactId: Nombre del proyecto
- version: Versión del proyecto
La tarea archetype:generate en caso que no se le pasen parámetros solicitará los mismos de forma interactiva y antes de terminar el proceso solicitará una confirmación. En caso que se desee anular este comportamiento, se le puede pasar el parámetro extra:
- interactiveMode=false
Ejemplo:
mvn archetype:generate -DarchetypeGroupId=com.dosideas -DarchetypeArtifactId=dosideas-archetype-javaee -DarchetypeVersion=1.0-SNAPSHOT -DgroupId=com.dosideas.maven -DartifactId=helloworld -Dversion=1.0 -DinteractiveMode=false
Nota: la tarea archetype:generate reemplaza a la anterior tarea archetype:create la cual no debe ser utilizada porque carece de las opciones más avanzadas que se utilizan en los últimos plugins.