Integración de Maven y Eclipse

De ChuWiki
Saltar a: navegación, buscar

En las versiones antiguas de eclipse había que instalar el plugin m2eclipse para poder trabajar con maven desde eclipse. Las versiones nuevas de eclipse vienen con este plugin ya instalado, por lo que no es necesario hacer nada especial para trabajar con maven y eclipse.

Configuración

Dentro de eclipse, en "window" -> "preferences", desplegamos el nodo "maven" para elegir "User Settings" y a aparece una ventana en la que se indica qué fichero settings.xml de maven se va a utilizar. En este fichero se le indica a maven dónde queremos que guarde los jar que se descargue de internet, qué repositorios de jar de internet debe usar, si hay alguna configuración de proxy para acceso a internet, etc. Eclipse leerá esta configuración, así que es importante asegurarnos que esta ventana indica el fichero settings.xml de maven que queremos usar.

Eclipse-maven.settings.png

Importar un proyecto maven existente

Si ya tenemos el proyecto maven creado, podemos importarlo fácilmente abriendo en eclipse el menú "File" -> "Import ..." y eligiendo "Maven" -> "Existing maven projects ..." en la ventana que se abre. Sólo nos queda navegar al directorio donde esté el fichero pom.xml de maven y elegir ese directorio.

Crear un proyecto maven

Si queremos crear directamente desde eclipse un proyecto maven, abrimos el menú "File" -> "Other ..." y en la ventana que se abre elegimos "Maven" -> "Maven project ...". Aparecerá una nueva ventana donde nos va pidiendo diversas cosas para nuestro proyecto. Es interesante el check que aparece con "create symple project (skip archetype selection)". Si marcamos esta casilla, se creara un proyecto java JSE normalito, el típico "Hola Mundo" en java. Si no la marcamos, aparecerá una nueva ventana con un montón de posibles tipos de proyectos (scale, myfaces, cocoon, jpa,....). También tenemos posibilidad de indicar en qué directorio queremos que se cree el nuevo poryecto.

Eclipse-new-maven-project.png

Una vez elegido el tipo de proyecto, una nueva ventana seguirá pidiendo datos para el proyecto, como

  • groupId, que no es más que una especie de "paquete" con el que agruparemos todos nuestros proyectos que estén relacionados. En el ejemplo, todos los proyectos que se hagan como ejemplo de algo, pueden ir agrupados en un groupId "com.chuidiang.ejemplos"
  • artifactId, será el nombre del jar que genere nuestro proyecto y también el nombre de nuestro proyecto en eclipse.
  • version, es la versión de nuestro proyecto. Podremos cambiarla según vayamos generando nuevas versiones, añadiendo funcionalidades, corrigiendo erores, etc.
  • name es un campo opcional, es el nombre de nuestro proyecto legible para un humano.
  • description" es también un campo opcional, sería una descripción de nuestro proyecto.
  • Parent Project nos permite elegir el groupId, artifactId y version de un proyecto maven que sea padre de este. Si hay más proyectos maven en nuestro ecipse, podemos elegir uno. Salvo que estemos creando un proyecto maven de cierta envergadura, con proyectos padre y subproyectos hijos, dejaremos estos campos en blanco.

Pulsando "Finish" tenemos finalmente nuestro proyecto creado.

Eclipse-new-maven-project-2.png

Si quisieramos crear un proyecto maven padre de varios módulos, no tenemos la opción directamente. Habría que crear un proyecto java normal (marcar la casilla "create symple project (skip archetype selection)") y una vez creado el proyecto, editamos desde el mismo eclipse el fichero pom.xml y cambiamos el tag <packaging> para que en vez de jar ponga pom. Después de tocar el fichero pom.xml, hay que indicarle a eclipse que actualice los cambios en el proyecto. Para ello, sacamos con el botón derecho del ratón el menú sobre el proyecto y elegimos "Maven" -> "Update Project ...". En la ventana que aparece nos aseguramos que está marcado el proyecto cuyo pom.xml hemos tocado y aceptamos.

Crear un módulo maven

Un móudulo maven es un proyecto maven hijo de otro proyecto maven que es el padre. Se crea igual que un proyecto maven normal, pero eligiendo "Maven module..." en vez de "Maven project ...". En un momento dado las ventanas que aparecen nos preguntarán qué proyecto maven es el padre. Si el proyecto maven padre ya está montado en eclipse, aparecerá un combo donde podemos elegirlo. Si no está montado, podemos elegir poniéndolo a mano el groupId, artifactId y version del proyecto padre.

Por supuesto y porque maven nos obliga a ello, el proyecto maven padre tiene que tener packaging pom dentro de su fichero pom.xml, y eclipse verifica que el proyecto padre que elegimos cumple esta condición.

Comandos de maven

Desde eclipse, sacando el menú desde el proyecto o desde el fichero pom.xml, elegimos la opción "Run as" y ahí tenemos los comandos básicos de maven para ejecutar, como "build", "clean", "install", "test", etc.

Si echamos en falta alguno, tenemos que crear una nueva configuración de "Run". Elegimos "Run as" -> "Run configurations..." y se abre la ventana con todos los posibles tipos de ejecución de un proyecto. En el árbol seleccionamos "Maven build" y pulsamos el botón de arriba en la parte izquierda cuyo tooltip es "New launch configuration". Aparece en el lado derecho una ventana con una serie de campos a rellenar

  • En "New name" ponemos un nombre que nos ayude a identificar esta ejecución que estamos creando.
  • En "Base directory" ponemos el directorio donde queremos que se ejecute el comando maven que estamos creando, que habitualmente será el directorio donde está el fichero pom.xml. Para elegir esto, con el botón "Browse Workspace" nos bastará elegir el proyecto donde tenemos el fichero pom.xml.
  • En "Goals" ponemos el comando maven que queremos ejecutar, sin el "mvn" delante. Por ejemplo, si quisieramos ejecutar "mvn assemby:assembly" para generar el zip de instalación de nuestro proyecto (tenemos que tenerlo instalado el maven-assembly-plugin y tenerlo configurado), bastaría con poner en esta caja "assembly:assembly".

Algo de configuración

Por defecto eclipse usará una versión de maven interna. Podemos configurarla un poco o decirle que use otra versión de maven que tengamos nosotros instalada.

En "Window" -> "Preferences ..." se abre una ventana. Elegimos en el árbol de esa ventana el nodo "Maven" y tanto en ese nodo como en sus hijos tenemos distintas opciones de configuración. Veamos sólo un par de ellas que son interesantes

  • En "Maven" -> "User settings" tenemos un enlace al fichero settings.xml de configuración de maven. Podemos o no tenerlo en esa ubicación (por defecto apunta a $HOME/.m2/settings.xml). Este es el fichero de configuración que suele venir en el directorio conf de la instalación de maven. Podemos crear en la ubicación que indica eclipse un settings.xml a nuestra medida, o bien podemos hacerlo apuntar al sitio donde tengamos nuestro propio settings.xml
  • En "Maven" -> "Installations" aparecen las instalaciones de maven que conoce elcipse. Por defecto está "Embedded", pero podemos añadir otras instalaciones que tengamos y decirle a eclipse cual queremos que use.

Enlaces externos