Maven en Eclipse
Como empezar a trabajar con Maven en Eclipse y usarlo. Instalación y uso paso a paso. Todo lo que hay que saber sobre Maven.
Es muy fácil trabajar con Maven en Eclipse. Si no sabes lo que es Maven, o te suenan extrañas las palabras «arquetipo», «artefacto», «ciclo de vida por defecto», «fases Maven», etc, así como si quieres profundizar un poco más en Maven; te recomiendo que leas este primer artículo donde lo explicamos en detalle. Vamos a hacer lo mismo que hicimos con la consola de comandos, en ese otro artículo que te comenté antes, con Eclipse.
Una pregunta muy común es si para Maven ¿Es mejor Eclipse o Consola de comandos? La respuesta es lo que más te guste. Hay quien prefiere la consola, si has leído el artículo anterior habrás comprobado que es muy sencillo. Mis argumentos para usar el plugin de Maven en Eclipse son la comodidad, rapidez y optimización que aporta al desarrollo, además de la posibilidad de autocompletar y ayudas para Maven.
Para realizar este proyecto vamos a utilizar Eclipse con las herramientas ya integradas (como el plugin de Maven). Lo podemos descargar el eclipse que se llama “Eclipse IDE for Java EE Developers” desde Eclipse Downloads (Eclipse Foundation)
Decir que este Eclipse lleva un Maven embebido, lo que quiere decir que no hace falta que hayamos descargado Maven de la página de Maven, como hicimos en el anterior artículo. Sí que recomiendo descargar Maven como hicimos antes, para disponer de la última versión de Maven, ya que la embebida en Eclipse suele ir alguna versión retrasada.
Creamos un nuevo proyecto Maven. Como se hace habitualmente en Eclipse, pulsamos con el botón derecho del ratón en el área en blanco llamada “Project Explorer”. Seleccionamos en el desplegable en “New” y luego en “Other…”.
En la ventana que se abre buscamos la carpeta “Maven”, seleccionamos el tipo de proyecto “Maven Project” y pulsamos “Next”
En la siguiente parte del asistente podemos seleccionar la casilla “Create a simple Project (skip archetype selection)”, así nos creará un proyecto simple automáticamente, sin tener que seleccionar un arquetipo. Si dejamos sin seleccionar la casilla, nos aparecerá un buscador para elegir el arquetipo.
Para este ejemplo vamos a descargar un arquetipo simple (el mismo que descargamos con la consola de comandos). Para ello dejamos la casilla desmarcada y pulsamos “Next”.
Podremos seleccionar un arquetipo de los que ya están por defecto o desde alguna ubicación. Para este ejemplo seleccionaremos el que tiene de “Group Id” como “org.apache.maven.archetypes”, y de “Artifact Id” como “maven-archetype-quickstart”. Pulsamos “Next”.
Ya solo nos queda configurar nuestro proyecto –al igual que hicimos antes en la consola- poner el “Group Id” (yo he puesto de ejemplo “com.jarroba.ejemplo”) y el “Artifact Id” (he puesto de ejemplo “nombreDeMiProyecto”). Pulsamos sobre “Finish”.
Puede suscitar la duda de: ¿Si el arquetipo tiene un “Group Id” y un “Artifact Id”, ¿Por qué tengo que escribir otros nuevos? Los que sirvieron para filtrar son los datos que pusieron los creadores de ese arquetipo cuando hicieron el proyecto nuevo; como nosotros vamos a crear un nuevo proyecto, lo tenemos que poner con nuestros datos personales, no con los de otra persona (si nuestro proyecto se convirtiera algún día en arquetipo de otros desarrolladores, otros desarrolladores lo buscarían con nuestros datos, y los sustituirían con los suyos).
Ya tendremos nuestro proyecto creado con los “Hello Word!”, igualito igualito a como hicimos en la consola 🙂
Programar con Maven en Eclipse
Primero vamos a ver una prueba de utilizar los comandos del ciclo de vida de un proyecto con Maven.
Pulsamos con el botón derecho sobre el proyecto para elegir “Run As”. En el desplegable podremos comprobar como hay ya varios comandos pre-configurados por el plugin de Maven en Eclipse; es decir, que pulsando un botón ejecutaremos estos comandos sin tener que escribir una palabra en la línea de comandos.
Si por ejemplo pulsamos sobre “Maven test”, en la “Console” de Eclipse nos mostrará la siguiente salida de Maven.
Te habrás fijado que nos aparece un Warning en el proyecto (triángulo amarillo con exclamación). Que si vamos a la pestaña inferior de Eclipse llamada “Markers” leeremos lo siguiente:
Java Build Path Problems
Build path specifies execution environment J2SE-1.5. There are no JREs installed in the workspace that are strictly compatible with this environment.
Nos está avisando que no encuentra el JRE de Java.
Para corregirlo vamos a añadir un plugin, para que Maven se encargue de gestionar por nosotros el JRE (podríamos hacerlo manual desde Eclipse, pero así ejemplifico como se usan los plugins, y es mucho más cómodo).
Para ello vayamos al bien amado POM. Al abrir el archivo en Eclipse tenemos que pulsar la pestaña “pom.xml”, el resto de pestañas son asistentes para configurar el POM de una manera más sencilla, que aquí no entraremos pero échalas un vistazo que son útiles.
Y añadimos los tag de apertura y cierre para <build>. Dentro de estos añadimos el que se llama <pluginManagement> para que nos gestione los plugins. A su vez estará el de <plugins> en plural que contendrá <plugin>. Y utilizaremos el plugin llamado “maven-compiler-plugin”, al que le diremos que queremos tanto “source” como el “target” a la última versión del JRE que tengamos instalado (yo tengo instalado el “1.8”). Por lo que insertaremos el siguiente código dentro de las etiquetas <project>:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
Quedará como la siguiente imagen. Y hay que guardar el fichero del “pom.xml”.
Veremos que no solo no nos ha corregido el problema sino que nos ha puesto otro ¡y de los rojos! No hay problema, simplemente que falta una cosa.
Maven Problems
Project configuration is not up-to-date with pom.xml Run Maven->Update Project or use Quick Fix.
Lo que falta es actualizar el proyecto. Todo lo que insertemos entre las llaves <build> requiere de un tratamiento especial de actualización, muy sencillo.
Para ello con el botón derecho sobre el proyecto, pulsamos en “Maven” y luego en “Update Project…”
La ventana que se nos abre, seleccionaremos nuestro proyecto y le diremos que actualice la configuración desde el “pom.xml” marcando “Update Project configuration from pom.xml”. Por defecto estará todo ya seleccionado y listo, por lo que no tendremos que seleccionar nada más (te marco en rojo en la imagen los check para que veas que esté todo correcto) y pulsamos “OK”.
Tarda unos segundos en procesar. Para comprobar que nos han desaparecido todos los problemas 😀
Ya tenemos el proyecto limpio de problemas. Solo queda programar.
Aprovecho y te explico que hemos hecho. Hemos utilizado la siguiente etiqueta <build>.
Configuración de construcción <build>: se ocupa de declarar la estructura del proyecto, gestionar plugins, y configura los informes. <build> hace otras muchas cosas, aquí vamos a explicar dos etiquetas que puede contener directamente <pluginManagement> o <plugins>.
<pluginManagement>: Es casi lo mismo que no poner esta etiqueta. La única diferencia es que en lugar de la configuración la información del plugin para esta construcción del proyecto en particular, se pretende configurar la construcción del proyecto que hereda de este al usar esta etiqueta de gestión de plugins. Solo configura los plugins que son referenciados dentro de elementos de los plugins de los hijos. Los hijos tienen todo el derecho de sobrescribir lo que se ha definido en el <pluginManagement> Contiene <plugins>
<plugins>: los plugins nos aportan funcionalidades extra. En el ejemplo del código, el plugin nos configura automáticamente el proyecto para que sea compatible con el JRE de Java para la versión “1.8”. <plugins> puede estar tanto dentro como fuera de <pluginManagement>, dependiendo de lo que necesitemos. Cada plugin se define en singular <plugin>.
<plugin>: Un plugin tiene algunos de los siguiente elementos:
- <groupId>, <artifactId>, <version>: un plugin sigue siendo un proyecto Maven que ha hecho otro desarrollador o nosotros mismos.
- <extensions>: si “true” carga las extensiones de este plugin, “false” en caso contrario. Por defecto está a “false”.
- <inherited>: si “true” aplica la configuración del plugin a los POM que hereden de éste, “false” en caso contrario. Por defecto está a “false”.
- <configuration>: cada plugin tendrá unas configuraciones específicas. En el código de ejemplo pide dos valores de entrada <source> y <target>, pero variarán en cada plugin. Se puede decir que son los “setter” o los parámetros de construcción del plugin; es decir, los parámetros que quiera el que desarrolló el plugin.
- <dependencies>: puede tener también dependencias (bibliotecas) que sean necesarias para la ejecución del plugin.
- <executions>: Un plugin podría tener múltiples objetivos (goals). Cada objetivo podría tener una configuración separada, posiblemente incluso unida a un objetivo del plugin a otra fase diferente. Configura la ejecución de los objetivos de un plugin.
- <id>: Especifica el bloque de ejecución entre todos los demás.
- <goals>: Contiene una lista de elementos de objetivos <goal>.
- <phase>: Esta será la fase que la lista de objetivos ejecutará. Permite la unión de cualquier objetivo a una fase en el ciclo de vida de construcción, alterando al que está por defecto en Maven.
Un ejemplo rápido de programación con dependencias sería: Imaginemos que queremos utilizar objetos JSON serializados en objetos (un objeto simple POJO que se convierta en un JSON). Investigamos un poco y pensamos que una buena idea sería utilizar la biblioteca Gson que nos hace este trabajo. Gson es una biblioteca que ha desarrollado Google, por lo que tendríamos que ir a descargarla desde algún lado e importarla. Mucho más sencillo con Maven, vamos a la página de Maven Repository: Search/Browse/Explore y buscamos la última versión de Gson .
Nos copiamos la dependencia de Maven al POM de nuestro proyecto dentro de <dependencies> (le podemos poner un <scope> si queremos):
Ahora guardamos el POM y construimos nuestro proyecto para que nos la traiga desde el repositorio Maven Repository: Search/Browse/Explore a nuestro ordenador.
Cuando termine de trabajar Maven.
Ya podremos abrir nuestras clases Java y empezar a trabajar. Como en el siguiente ejemplo la biblioteca Gson:
Te he ayudado a pasar la puerta, el resto del programa ya es cosa tuya 😀
«Maven en Eclipse», de Ramón Invarato en jarroba.com, con licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0. Obra registrada en Safe Creative.

Te puede interesar
Maven
Tutorial completo de Android. Te contamos todo lo que se necesita saber para ser un maestro con Maven
Instalar bien Eclipse (es un IDE de muchos)
Guía para descargar e instalar Eclipse Standard en Windows: descompresión, acceso directo, espacio de trabajo y cómo solucionar el error de JAVA_HOME.
Cómo programar Webs y Servlets en Eclipse
Configura Eclipse para programar webs y servlets: instala los plugins de desarrollo Web y Java EE, vincula Tomcat 7 y arranca el servidor local desde el IDE.
Espacio de trabajo para guardar los proyectos que creemos en Eclipse
Entiende qué es el espacio de trabajo de Eclipse y crea tu primer proyecto Java: paquete, clase y un programa que imprime texto por consola.
Comentarios (51)
-
Saludos, agrege a mi pom.xml algunas dependecias referentes a http cliente/core etc cuando hago el install del maven y esta estan build success pero al quere subir jar de mi aplicacion estas me generan un error. esta dependecia apache las tengo localmente funciona bien si la llamo como Add External Jars pero si la agrego como dependencia a mi pom.xml hago el install y creo el jar esta no me funcionan. como podria funcionar mis proyecta sin tener que usarlas localmente.
-
Parece que no está configurado el pom de Maven para añadir las dependencias al proyecto actual antes de crear el JAR. Para ello puedes configurar Maven para copiar las dependencias al proyecto actual como sugieren en la siguiente web https://www.baeldung.com/executable-jar-with-maven
-
-
Saludos Ramon..
Buen articulo
Tengo una duda se puede añadir jpa usando los wizards de eclipse en un proyecto maven ya creado.-
Buenas Jonathan.
Eclipse tenía un Wizard para gestionar las dependencias. Sino lo trae preinstalado, lo puedes instalar desde el instalador de paquetes integrado en Eclipse (desde su market place, su ficha y como se instala en https://marketplace.eclipse.org/content/maven-java-ee-integration-eclipse-wtp-lunamars#group-screenshots).
Luego solo te queda buscar las dependencias que te interesen. Para JPA las puedes ver en https://mvnrepository.com/tags/jpa
-
-
hola disculpa porque no me aparece el mave en mis opciones para crear un nuevo proyecto ? gracias
-
Buenas Christian. Lo que comentas podría ser por que el proyecto no sea un proyecto Maven (para convertir el proyecto selecciónalo con el botón derecho del ratón y en el menú contextua ve a: «Configure»/»Convert to Maven project»), también podría ser que no esté instalado el plugin de Maven en Eclipse (https://www.eclipse.org/m2e/), o que no esté instalado correctamente Maven en el ordenador (más información en https://jarroba.com/maven/)
-
-
Hola Ramón. ¿Por qué cuando le das nombre al group Id empieza por un «com.» ? He visto más tutoriales por ahí y también lo hacen, pero la verdad es que no entiendo el porqué.
Muchas gracias y un abrazo.-
Es lo que se conoce como «espacios de nombres», para evitar que haya nombres coincidentes. Por ejemplo, imagina que tu creas un programa que tiene una clase llamada «mi_clase», lo más seguro es que haya miles en el mundo de personas que llamen a esa clase igual que tú; si existieran en tu ordenador varios programas con el mismo nombre de clase crearía un conflicto en donde se ejecutara, pues no sabría si apuntar a tu clase o a la de otro (esto es un resumen rápido, más información en https://es.wikipedia.org/wiki/Espacio_de_nombres).
Ahora bien, el «com» (o «es», «eu», etc.) es la extensión del dominio de la URL de la web del que va a programar la aplicación (esta página web se llama «jarroba.com», más información en https://jarroba.com/cliente-servidor-peticion-del-cliente/ ). Por convención se decidió invertir el orden del dominio de la web para que sirva de prefijo para los espacios de nombres (para «Jarroba.com» el prefijo de los espacios de nombres sería «com.jarroba») y luego el identificador de lo que sea (para el ejemplo de antes de las clases, sería «com.jarroba.mi_clase» que sería completamente distinguible de otro cualquiera con el mismo nombre de clase como «com.empresa.mi_clase»).
-
-
Este mensaje me sale cuando hago maven install
Plugin com.mysema.maven:apt-maven-plugin:1.1.3 or one of its dependencies could not be resolved: Failed to read artifact descriptor for com.mysema.maven:apt-maven-plugin:jar:1.1.3: Could not transfer artifact com.mysema.maven:apt-maven-plugin:pom:1.1.3 from/to central (http://repo.maven.apache.org/maven2): Connection refused: no further information to http://repo.maven.apache.org/maven2/com/mysema/maven/apt-maven-plugin/1.1.3/apt-maven-plugin-1.1.3.pom ->
-
Parece un problema de conexión. Probaría a ver si no estás detrás de un proxy, puedes configurar el proxy en el fichero settings.xml añadiendo el proxy (más información en https://maven.apache.org/guides/mini/guide-proxies.html)
También a limpiar todas las dependencias («.m2/repository», haz una copia de seguridad previa) y volverlas a descargar por si acaso.
-
-
Hola Ramon:
Tengo instalado Maven con Netbeans 8.2 y funciona correctamente.
Para trabajar con Maven desde eclipse puedo utilizar la instalación anterior
-
Estimado Ramón,
Soy nuevo en maven, necesito cambiar el group Id de mi proyecto que tiene varias dependencias, Lo cambio manualmente pero me da muchos errores, me puedes explicar cual es el procedimiento
-
Excelente explicación, muy claro y certero.
Tienes algún tutorial para instalar Appium en Eclipse ?
Saludos -
Buena info, me gustaría que explciras como es el uso de los Properties dentro del POM.
Gracias. -
Hola, excelente artículo, seguí todos los pasos y pude crear el proyecto en línea de comandos, sin embargo desde Eclipse, a pesar de que agregue mi instalacion desde el menu de Window.
Eclipse me muestra el error «Could not calculate build plan: Plugin org.apache.maven.plugins: maven-resources-plugin: 2.6 or one of its dependencies could not be resolvedÑ Failed to read artifact descriptor for org.apache.maven.plugins: maven-resources-plugin: 2.6»
Puedes ayudarme?
-
Asegurate que Eclipse esté apuntando correctamente al settings.xml del repositorio local (ve en Eclipse a «Window/Preferences», en el cuadro que se abre ve a «Maven/User Settings»). En Windows se crea por defecto en «C:\Users\
\.m2\settings.xml» (En el cuadro de opciones que hemos dicho tiene que estar apuntar en «User Settings») y el repositorio local en «C:\Users\ \.m2\repository» (tiene que apuntar en «Local Repository»)
-
-
Antes que nada, muchas gracias por toda la expliación bien detallada. Eres un genio.
Mencionaste que cuando descarguemos el IDE, recomiendas descargar maven desde la página oficial, porque la versión del IDE normalmente viene con una versión retrasada.
Pregunta:
¿Existe alguna configuración del IDE para que utilice la versión de descarga, en vez que la que tiene por defecto?, si es así ¿cómo o en dónde se configura?
De antemano muchas gracias!
-
Sí, existe la forma de decirle a Eclipse donde se encuentra nuestro Maven descargado (en algunos casos es necesario). Para ello:
- Vamos en la barra de tareas a Window/Preferences.
- En la ventana que se abre, en la columna de la izquierda vamos a Maven/Installations (Nota: cuando añadamos la instalacción de Maven, en esta ventana tendremos que seleccionar el check de la instalación de Maven que queramos utilizar)
- En la segunda ventana que se abre pulsamos en el botón «Add…», y donde pone «Installation home:» pulsamos en «Directory…», ahí buscamos nuestra instalación de Maven que queramo añadir.
- Aceptamos todo (nos eseguramos que esté marcado el check que mencionamos en la nota del paso 2).
-
-
Hola tengo un detalle con maven resulta que cambie de maquina y ya termine de configurar, importe mi proyecto maven y resulta que no me actualiza ningun cambio ni modificacion que hago sobre el, bueno si lo ghace fisicamente pero al compilarlo pareciera que no llega a compilar las clases en mi nueva maquina y obvio al correrlo no se ven todos los cambios que realizo. Y si le aplico el clean no llego a ver que me cree la ultima carpeta de mi proyecto en el target y por lo tanto no encuentra no las classes para correr. A que se debera =(.
salu2.
-
Hola Faby. Si no has cambiado de repositorio, comprueba que se te esté generando bien la carpeta «.M2» en «C:\Users\
\.m2″ (se te tienen que descargar las dependencias, sino dará errores por no encontrarlas). Prueba a hacer un “Update Project configuration from pom.xml” y un «Force Update of Snapshots/Releases». Si sigue con errores tendrás que comprobar también los ficheros Pom y de configuración si tuvieran rutas absolutas que apuntaran a carpetas que existían en el antiguo ordenador y no en el nuevo.
-
-
Hola,
Tengo una duda, actualmente tenemos que migrar un proyecto Maven a HTML5 con Javascript pero al momento de importarlo en Eclipse me tira error, si veo las clases y demás, pero cuando lo ejecuto en local me da error 404, estamos utilizando Eclipse Mars y Tomcat v8.0
¿Lo estoy importando de manera incorrecta?
Saludos.
-
Hola Ramon:
Tus blog son muy interesantes.
Como trabajo con properties y donde debere alojarlos?
Un saludo dede Bogota
-
Hola Eduardo. De properties para Maven tienes la explicación y ejemplo en http://jarroba.com/maven/ 🙂
-
-
Hola benas,
El artículo está genial explicado, pero me surge una duda con los plugins
He buscado en el MVNRepository el plugin de EclipseLink para poder crear clases de tipo JPA.
Añado al POM
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa</artifactId>
<version>2.5.2</version>
</dependency>La salida Maven install -> Build Sucess. Pero al ir a crear clases de tipo JPA Entity o EclipseLink Dynamic Entity no me encuentra el proyecto y me dice que tengo que crear uno concreto.
El caso es que me gustaría poder hacer uso de JPA en un proyecto creado con MAVEN y estoy seguro de que me dejo algo.
Un saludo.
-
Primero que nada, excelente artículo, justo lo encontré ahora que estoy trabajando en un proyecto de la universidad, quería preguntarte si de casualidad conoces una manera de instalar BouncyCastle para usarlo con Maven y como usarlo en una aplicacion? de antemano gracias por la respuesta 🙂
-
Hola Gustavo. No te puedo ayudar mucho con la biblioteca pues no la he utilizado. Sólo te puedo indiar dónde está en el Maven Repository: http://mvnrepository.com/artifact/org.bouncycastle
-
-
Lo primero, gracias por el aporte. Uno más que sirve de gran ayuda.
Lo segundo es, llevo un par de días buscando en Internet el problema que tengo pero no consigo resolverlo. Ahí va:
Cuando termino con el asistente de creación del proyecto Maven en Eclipse Mars (en el que configuro igual que en este tutorial) me sale un error durante la construccion del espacio de trabajo,
'Building workspace' has encountered a problem
Errors ocurred during the build
Errors occurred during the build.
Errors running builder 'Maven Project Builder' on project 'mavenWeb'.
Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.6
Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.6
Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.6
Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.6Me descargué el plugin m2e para eclipse desde http://download.eclipse.org/technology/m2e/releases/ y mi version de Apache Tomcat es 7.0.63
Espero que alguien pueda ayudarme, estoy algo perdido. Gracias
-
En este artículo quise simplificar el proceso bastantes pasos. En caso de que te de problemas el Maven embebido en Eclipse, lo mejor es descargar Maven y vincularlo con Eclipse. Para ello:
1-Descarga Maven de https://maven.apache.org/download.cgi y descomprímelo por ejemplo en "archivos de programa"
2-Crea la variable de entorno de M2_HOME (apunta a la intalación de Maven), y en la variable de path añade la ruta hasta la carpeta "bin" de Maven incluida ésta (valdría con poner: %M2_HOME%\bin;). Ya con esto asegurate que esté bien puesto el JDK de Java en las variables de entorno, ya que es necesario (más información de la intalación de Maven en https://maven.apache.org/install.html)
3-En Eclipse ve a Window/Preference y ahí ve a Maven/Installations, añade y busca el nuevo Maven que has instalado. Asegurate de seleccionarlo
-






















Deja un comentario