Maven en Eclipse

Una vez que hemos instalado Maven en nuestro equipo, es el momento de instalar el plugin de maven en Eclipse.

Instalar el plugin m2eclipse

Para ello nos vamos al menú “Help>>Eclipse Marketplace”, introducimos en el campo de búsqueda “m2eclipse” y le damos a buscar:

Instalando m2eclipse desde el Marketplace

Instalando m2eclipse desde el Marketplace

Seleccionaremos el plugin “Maven integration for Eclipse”, le damos a siguiente y se nos mostrarán los paquetes que se van a instalar, a continuación tenemos que aceptar los términos y condiciones y finalmente, nos pedirá reiniciar eclipse. Con esto ya tenemos el plugin instalado.

Instalar el plugin m2eclipse WTP

Vamos a instalar también un plugin que sirve para integrar Maven con las herramientas web de Eclipse. Para ello buscaremos en el Marketplace “m2eclipse”, como en el caso anterior. Hay varios plugins, estoy usando la versión Juno de Eclipse, y voy a seleccionar el siguiente plugin, que va bastante bien:

Plugin que integra maven con las herramienta web

Plugin que integra maven con las herramienta web

Procedemos como en el apartado anterior, reiniciamos Eclipse, y ya tenemos el segundo plugin instalado.

Configuración del plugin m2eclipse

Accedemos al menú “Windows>>Preferences”, escribimos “maven” en el campo de texto que aparece en la esquina superior izquierda y pinchamos en el submenú “Installations”. Se nos mostrará la versión de Maven que viene embebida en el plugin. En lugar de usar esa, vamos a seleccionar la que instalamos en el primer tutorial, para ello pinchamos en añadir, seleccionamos la carpeta donde instalamos Maven y aceptamos. Se nos mostrará algo parecido a esto:

Configurando m2eclipse

Configurando m2eclipse

Como se puede ver en la imagen, se nos ha seleccionado el archivo settings.xml. Este archivo contiene la configuración global del entorno, y puede contener, por ejemplo, los usuarios y contraseñas de acceso al repositorio SVN, datos de acceso al repositorio corporativo, configuración del proxy para acceder a la red, etc.

Del mismo modo, en el apartado “User Settings” podemos configurar otro settings.xml con la configuración particular de nuestro equipo:

Configuración de usuario m2eclipse

Configuración de usuario m2eclipse

Está apuntando a un settings que no existe, por lo que si deseamos configurar parámetros particulares para nuestro usuario, se puede copiar el settings.xml de la configuración global y editarlo con los parámetros que nos interese.

La idea es que en la configuración global se ajusten los parámetros comunes a todos los programadores de un determinado equipo de desarrollo, y en la configuración a nivel de usuario los datos de configuración que apliquen a un usuario particular. De este modo se pueden definir permisos de acceso a repositorios y este tipo de cosas.

Como se puede ver, apunta al repositorio local de Maven (carpeta .m2 en el “home” del usuario). El repositorio local de maven, es una carpeta que va a contener todas las librerías que necesitemos en nuestros proyectos. Por ejemplo, supongamos que en un proyecto añadimos una dependencia a “librería1”, maven buscará dicha librería en nuestro repositorio local, si no lo encuentra, se conectará al repositorio central de Maven, y se la descargará, poniéndola en el repositorio local. Veremos esto con más detalle más adelante.

Crear un nuevo proyecto con m2eclipse

Vamos a crear un nuevo proyecto, como hicimos en el anterior post. Seleccionamos el menú “File>>New>>Other”:

Nuevo proyecto Maven

Nuevo proyecto Maven

Seleccionamos “Maven Proyect” y continuamos. Dejamos las opciones por defecto en la siguiente pantalla y pulsamos siguiente, a continuación seleccionamos el arquetipo “maven-archetype-quickstart” (podemos usar el campo “filter” para ayudarnos a buscar):

Selección arquetipo

Selección arquetipo

Es posible que no aparezca nada en la lista, eso es debido a que no detecta el repositorio central de Maven, a veces pasa. La solución a esto es añadir en el settings.xml un “mirror” del repositorio central, de este modo:

Introducimos a continuación los mismos valores que en el ejemplo anterior que hemos realizado por línea de comandos:

Parámetros del arquetipo

Parámetros del arquetipo

Al pulsar en finish, se nos habrá creado el proyecto:

Proyecto Maven

Proyecto Maven

Se detalla en rojo las dependencias de Maven que apuntan a nuestro repositorio local, que como hemos comentado es la carpeta “.m2”. Para ver como funciona, vamos a cambiar la dependencia de Junit, editamos el archivo pom.xml, localizamos la dependencia a junit, y lo dejamos del siguiente modo:

Si observamos de nuevo las dependencias de nuestro proyecto, vemos que además de cambiar la versión de la librería junit, se nos ha añadido una nueva librería. Esto se debe a que la nueva versión necesita dicha librería. Es lo que se llama dependencia transitiva, es decir, cuando utilizas una librería Maven automáticamente te descarga las librerías de las que depende.

Detalle de las dependencias

Detalle de las dependencias

También se pueden añadir dependencias sin necesidad de editar el pom.xml directamente. Pinchando con el botón derecho del ratón sobre el proyecto y seleccionando en el menú emergente: “Maven>>Add Dependency” se nos abrirá un asistente desde el que podemos buscar las librerías

Asistente para añadir dependencias

Asistente para añadir dependencias

Empaquetar el proyecto

Vamos a empaquetar y compilar el proyecto, pero en lugar de hacerlo por línea de comandos, lo haremos usando Eclipse. Pulsando sobre el proyecto, con el botón derecho tenemos las opciones “Run as/Debug as” de Maven:

Ejecutar comandos en m2eclipse

Ejecutar comandos en m2eclipse

Queremos más opciones, así que vamos a pinchar en “Run Configurations”. Cuando se abra el asistente le damos a “New launch configuration”, seguidamente le damos un nombre a la configuración (Empaquetar), indicamos el directorio base y en el apartado “Goals” indicamos lo que nos interese, en este caso queremos limpiar la carpeta “target”, empaquetar y crear el site (clean package site):

Configurar ejecución en m2eclipse

Configurar ejecución en m2eclipse

Al pulsar el botón “Run”, como en el caso de la ejecución por línea de comandos, en la carpeta “target” se genera un jar, así como los html con la documentación de nuestro proyecto.

Nos quedamos aquí y en el próximo documento vamos a introducirnos un poco más en Maven: Principales comandos

12 comentarios:

  1. Perfecto..simplemente perfecto. saludos

  2. Hola,

    He seguido este tutorial y lo veo bastante bien, sin embargo cuando al fin he logrado ejecutar el com.mycompany.app (tenia problemas con el MAVEN_HOME Y EL JAVA_HOME me apuntaba al jre y no al JDK), resulta que me pone BUILD SUCCESS pero, en el target no me aparece nada de nada, ningun jar. No se que ha podido salir mal, alguna sugerencia?
    Gracias por el tutorial.

    • Mmmmm
      Supongo que no ves el .jar en la carpeta desde eclipse. Bastará con refrescar la carpeta. Revisa el contenido de dicha carpeta en el pc, si la ejecución ha ido bien como comentas, debe contener el .jar. La carpeta target, se crea en el mismo directorio que el pon.xml

  3. Hola Carlos,

    muy bueno tu blog felicitaciones!

    Tengo un problema cuando quiero configurar el plugin. En lugar de ver una instalación que diga External, me sale una que dice Workspace pero no es seleccionable sino que sale con un ícono de warning y dice NOT AVAILABLE. La única opción que sale habilitada esa la Embedded y no se puede cambiar.

    ¿Qué hice mal?

    Entorno:
    SO: windows 8 – 64 bit
    Maven: apache-maven-3.2.5
    jdk: jdk1.8.0_25
    eclipse: Luna Service Release 1 (4.4.1)
    plugin: * m2e maven integration for eclipse (luna and newer) 1.5
    * maven integration for eclipse WTP (Juno) 1.0.1

  4. Creo que ya está arreglado, simplemente agregué una nueva entrada aputando al directorio donde instalé maven y pude continuar.

    Saludos!

    • Sí, hay que agregar una nueva.

      En realidad, normalmente la que viene embebida funciona perfectamente, pero a mí me gusta tener más control sobre la versión que estoy utilizano… Supongo que son manías.

      Un saludo y gracias por participar en el blog.

  5. Estoy teniendo problemas porque no me encuentra el jdk, parece que apunta al jre: ¿como puedo resolverlo?

    Gracias, y enhorabuena por el tutorial.

    • Te recomiendo seguir esta solucion,
      a mi no me sirvio la solucion que todos escogieron si no mas abajo que pedia modificar el archivo pom.xml

      For me, nothing worked until I made this change to my pom.xml:

      ————————————————–

      maven-compiler-plugin
      3.1

      true
      C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe

      Other Notes

      I could see that m2e was executing in a JRE, not the JDK. Nothing I did changed this, including adding this to the eclipse.ini:
      ——————————————————————————————-
      -vm
      C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe
      In the end I never got m2e to execute in a JDK, but setting the Java compiler explicitly (as above) did the trick.

    • el codigo es

      maven-compiler-plugin
      3.1

      true
      C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe

      y va en el pom.xml

  6. Genial! Muchas gracias, lo he probado y me ha salido todo perfecto 🙂
    Muy buen blog (y)

Deja un comentario

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