Principales comandos

Los comandos que se ponen aquí se pueden ajustar y utilizar en eclipse, como hemos visto, configurando correctamente el pom.xml, y ejecutando en Eclipse “Run Configuration…”.

Arquetipos

En resumen, un arquetipo Maven es una herramienta para generar una plantilla de proyecto. Veamos lo que pasa cuando queremos generar un proyecto usando un arquetipo:

Se muestra la lista de arquetipos y se solicita cierta información que para crear los paquetes, el id del grupo, etc., el pom.xml generado contiene, entre otras, ésta información. Vamos a ver algunas de estas propiedades:

  • groupId →  Identificación de la organización, normalmente es la url a la inversa, Ej., es.mcu.app, org.etc.etc
  • artifactId Nombre del      proyecto. El nombre se forma con:. (Por ejemplo, myapp-1.0.jar)
  • packaging Tipo de paquete utilizado en este artefacto (JAR, WAR, EAR… ).
  • version Versión del artefacto generado por este proyecto.
  • name Nombre descriptivo del proyecto. A veces se usa en la documentación del proyecto.
  • url Url donde se puede encontrar el “site”.
  • descriptionDescripción básica. Se usa en la documentación.
Compilar

Desde el directorio donde esté el Pom.xml, se ejecuta el siguiente comando:

La primera vez que se ejecuta un comando Maven descarga todos los plugins y dependencias que necesita, por lo que tardará un poco más de tiempo, el resto de veces, únicamente descargará lo que haya cambiado. Las clases compiladas las genera en:

Compilar fuentes de prueba y ejecutar pruebas unitarias

Desde el directorio donde se encuentre el pom.xml, introducimos el comando:

Se descargarán las dependencias necesarias y antes de ejecutar los test, compilará los fuentes. Si simplemente queremos compilar los fuentes de prueba y no ejecutarlos:

Los test que se ejecutan, siguen una convención de nombres, se ejecutarán:

Los que se excluyen por defecto, son:

Crear un Jar e instalarlo en el directorio local: El repositorio local

El repositorio Maven, se utiliza para almacenar artefactos y dependencias de varios tipos. Hay dos tipos de repositorios, el local y el remoto. El repositorio local funciona como una caché de descargas remotas, que además contiene artefactos que no se han versionado aún. Los repositorios remotos, pueden ser los que contienen elementos internos a la organización, o también repositorios de terceras partes como repo.maven.apache.org por ejemplo.

  • Filosofía: La idea, es que todos los jar y elementos que necesiten nuestros proyectos, estén en el repositorio local y no se almacenen en el control de versiones que se esté utilizando. De este modo se ahorra espacio de almacenamiento.
  • Uso del repositorio: No hay que hacer nada con el repositorio local. Si no tienes espacio, puedes borrar cosas o eliminar el repositorio entero para volver a crearlo… Las descargas ocurren cuando se declara en un proyecto una dependencia que no está presente en nuestro repositorio. Las descargas se realizan del repositorio central de Maven. Para cambiar esto se pueden definir “Mirrors” configurándolo en settings.xml

Para empaquetar nuestro proyecto:

Si no se quiere pasar las pruebas unitarias al hacer el paquete:

Si quieres construir tus paquetes offline

Se generará el jar en ${basedir}/target basándose en la información que se indique en el pom.xml. Para instalar nuestro artefacto en nuestro repositorio local (~/.m2/repository por defecto), de modo que el resto de proyectos puedan actualizar la dependencia a dicho artefacto.

Crear un sitio Web con la información de nuestro proyecto: Site

Borrar el directorio target para dejarlo listo para compilar de nuevo

Configurar un proyecto para su uso en eclipse

Usar o configurar los plugins

Si queremos personalizar la construcción de un proyecto Maven, añadir utilidades, métricas, etc., esto se hace mediante la adición o la reconfiguración de los plugins. Por ejemplo para permitir los fuentes de JDK 6.0. Esto es tan simple como añadir esto al pom.xml:

Agregar recursos al Jar

Usando las convenciones en la estructura de directorios estándar de Maven, se pueden empaquetar los recursos en el jar, simplemente colocándolos en el directorio adecuado y sin necesidad de tocar el pom.xml. Cualquier fichero o directorio incluido en ${basedir}/src/main/resources se incluye en el jar exactamente con la misma estructura y comenzando en la raíz del jar. Por ejemplo, imaginemos que queremos incluir unos ficheros .gif en la carpeta META-INF del jar:

Añadir recursos al jar

Añadir recursos al jar

Maven por defecto añade información pom.xml y pom.properties en META-INF. Cada artefacto generado por Maven es auto descriptivo.

Para agregar recursos para los test, se puede añadir ${basedir}/src/test/resources lo que sea.

Usar el plugin de Jetty para ejecutar un proyecto web

Se puede configurar un pluging para ejecutar nuestras aplicaciones web (siempre y cuando se empaqueten como war). El proyecto se despliega y no hay que preocuparse de donde está el servidor, ni de la configuración, el plugin se encarga de redesplegar la aplicación. Para usar Jetty, se añade en el pom.xml:

Para ejecutar el plugin:

Para acceder a la aplicación: http://127.0.0.1:8080/aplicacion-web El código se escaneará cada 10 segundos para detectar los cambios que hagamos y de este modo actualizar el despliegue.

Aquí terminamos este post. El el próximo explicaremos la Gestion de dependencias

2 comentarios:

  1. Gabriel Pérez

    Muy buen tutorial. Gracias. El único detalle es que laexplicación del uso de Jetty está algo corta.

  2. Álvaro Troncoso

    Estimado,

    hay manera de que al generar el war este no genere el pom.properties o hacer que lo lea de una ruta externa.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *