Este post es para repasar un poco los aspectos de apache mave...
Maven es un framework de gestión de proyectos Java, basado en POM (Project Object Model), que nos proporciona funcionalidades desde la compilación hasta la distribución, despliegue y documentación de los proyectos.
Maven se basa en patrones y en estándares. Esto permite a los desarrolladores moverse entre proyectos sin la necesidad de aprender como compilar o empaquetar, mejorando de esta forma, el mantenimiento y la reusabilidad.
Que provee maven??
Características generales de Maven
Convención sobre configuración
Si todos estamos de acuerdo en ciertas cosas ¿Para qué configurarlas? Démoslas por hechas y mantengamos la opción de configuración por si fuera necesario
Uso de buenas prácticas
Por ejemplo ejecutar los test unitarios antes de hacer un deploy o instalación
Un ciclo de vida extensible declarativamente basado en fases y goals
Facilita automatizar tareas sencillas o todo el proceso de construcción de forma rápida y simple, una única orden
Un modelo centralizado y transparente de gestión de dependencias
Se acabó el “Jar Hell”, el buscar jars por internet y las dependencias de estos jars, o casi del todo…
El principal objetivo de maven es permitir a un desarrollador comprender el estado completo del esfuerzo del desarrollo en el período más corto de tiempo. Para lograr este objetivo existen distintas áreas de las que maven se ocupa:
Hacer el proceso de construcción sencillo.
Proporcionar un sistema de construcción uniforme
Proporcionar información de la calidad del proyecto.
Proporcionar lineamientos a seguir para el desarrollo de las mejores prácticas.
Permitir migraciones transparentes a nuevas características.
Maven utiliza el término artifact para denominar a la unidad mínima que maneja en su repositorio. Puede ser por ejemplo un jar, un ear, un zip, etc. Cuando Maven compila y empaqueta código, produce también artifacts que instala en el repositorio.
Los artifacts están agrupados bajo el id de grupo (groupId) y tienen un id propio (artifactId), una versión, un clasificador y una extensión.
Maven está basado en torno al concepto de ciclo de vida de build (build lifecycle). Esto significa que el proceso para construir y distribuir cualquier artifact (proyecto) está claramente definido.
Para la persona que construye un proyecto, esto significa que solo debe aprender un número pequeño de comandos para construir cualquier proyecto Maven.
Existen tres ciclos de vida built-in con Maven: default, clean y site.
Default | Administra hasta el proceso de deployment |
Clean | Administra las tareas de reseteo del build anterior |
Site | Administra la creación del sitio de publicación del proyecto |
Cada uno de los ciclos de vida está definido por una lista de fases, donde cada fase representa una etapa en el ciclo de vida.
Este ciclo de vida define la secuencia de fases que va desde validar la integridad hasta el despliegue (deploy).
Cuando se solicita la ejecución de una fase Maven ejecuta primero todas las fases anteriores siguiendo la secuencia y termina en la fase solicitada.
Las principales fases del ciclo de vida default de maven son:
validate | Valida si el proyecto es correcto y si tiene toda la información necesaria |
compile | Compila el código fuente del proyecto |
test | Corre los test utilizando el framework de unit test disponible |
package | Toma las clases compiladas y recursos y crea un paquete (jar, war, ear). |
integration-test | Procesa y despliega el paquete, para que corran las pruebas de integración. |
verify | Ejecuta los chequeos necesarios para verificar que el paquete cumple los criterios de calidad. |
install | Instala el paquete en el repositorio local para ser usado como dependencia por otros proyectos localmente |
deploy | Copia el paquete a un repositorio remoto para ser compartido con otros usuarios y proyectos. |
Las fases del cilo de vida clean:
pre-clean | Ejecuta los procesos necesarios, previos al clean |
clean | Remueve todos los archivos generados en un build previo |
post-clean | Ejecuta los procesos necesarios para finalizar el clean |
Las fases del ciclo de vida site:
pre-site | Ejecuta los procesos necesarios, previos a la generación del site |
site | Genera el site con la documentación del proyecto |
post-site | Ejecuta los procesos necesarios para finalizar la creación del site |
site-deploy | Realiza un deploy del site de documentación, en el web Server especificado. |
Tener en cuenta que para el deploy del site, debemos configurar el web Server.
website
scp://www.mycompany.com/www/docs/project/
Bueno hasta aquí un maven, repaso general.