webapp que proyecto pom generate descargar crear archetype agregar java maven archetypes

java - proyecto - ¿Alguna buena guía avanzada sobre cómo crear nuevos arquetipos maven?



maven-archetype-webapp (6)

Estoy buscando una guía sobre cómo crear nuevos arquetipos de Maven que impliquen el uso de parámetros para crear directorios y nombres de archivos donde los parámetros se usen como prefijos en los nombres de archivos y parte de la estructura del paquete / directorios creados por el arquetipo.

Todo lo que puedo encontrar son instrucciones muy simples sobre cómo hacer proyectos muy simples.




Creo que encontré un sitio que me ayuda un poco más una vez que descubrí que las plantillas de Velocity se utilizan como parte de los procesos de arquetipo.

HowToCreateMavenArchetypeFromProject


Creo que encontramos el mismo problema, finalmente lo resolví con una explicación de este article

asumiendo que desea generar el paquete com.company.base . dal.dao , llamamos com.company.base es el paquete raíz, dal.dao es el paquete principal, luego simplemente coloque su plantilla en el archivo java bajo src / main / java / dal / dao, y modificamos el packaged="true" en META -INF / maven / archetype-metadata.xml como se muestra a continuación

<fileSet filtered="true" packaged="true" encoding="GBK"><!--packaged="true" tells maven to copy the core package in to root package while creating a project.--> <directory>src/main/java</directory> <includes> <include>**/*.java</include> </includes> </fileSet>

Por ejemplo, si configura -Dpackage=com.alibaba.china después de ejecutar el arquetipo mvn: genere, creará un paquete fuente de java como com / alibaba / china / dal / dao / sample.java

como la forma de proporcionar la información del paquete de prefijo en sample.java, simplemente use $ {package} como se muestra a continuación

package ${package}.dal.dao;

el complemento de arquetipo reemplazará $ {package} con -Dpackage como plantilla de velocidad


Incluso estoy buscando lo mismo. Incluso la página de inicio de Maven me parece muy básica y no cumple con nuestro requisito.

Incluso intenté HowToCreateMavenArchetypeFromProject pero todavía tengo una pregunta. Cómo invocar un archivo específico del arquetipo cuando se genera el proyecto de ese tipo de arquetipo. Para ser específico, si tengo una clase java App.java, ¿cómo invocar eso al crear un proyecto?

Lo que sucede con create-archetype-from-project es que crea un proyecto con los mismos archivos y la misma estructura de directorios, y debemos ejecutarlo nuevamente para ponerlo en acción.

Además, $ {groupId} y esas cosas solo funcionan en archivos maven. ¿Qué sucede si tengo un archivo de propiedades y quiero usar el artefacto que el usuario ha ingresado?

Hazme saber si te encuentras con algo bueno. Mientras tanto, también te avisaré cuando encuentre alguna solución.

Gracias


de la documentación de maven: http://maven.apache.org/archetype/archetype-models/archetype-descriptor/archetype-descriptor.html

Un conjunto de archivos define la forma en que el Archetype Plugin utiliza los archivos del proyecto ubicados en el archivo jar para generar un proyecto. Si el nombre del archivo o directorio contiene un patrón de propiedad , se reemplaza con el valor de propiedad correspondiente.

si puedes nombrar el archivo como

__artifactId___local.properties

... cuando genere el proyecto con artifactId = foo contendrá este archivo:

foo_local.properties