Integración con eclipse
Cómo invocar e integrar maven con Eclipse
En el momento de preparar esta guía, Eclipse no lleva soporte de forma oficial para maven. Existen algunos plugins disponibles que permiten integrar maven en eclipse, aunque parece que todavía no son completamente funcionales. Uno de ellos (Q4E), de hecho, está en proceso de ser incorporado a eclipse de forma oficial, bajo el nombre `Eclipse IAM`__, pero todavía no ha sido liberado. __ http://www.eclipse.org/iam/ Por no ligarnos a un plugin no oficial de eclipse, por ahora se va a emplear una integración básica de eclipse con maven, que permita en cierta forma compartir la configuración de proyecto de maven con eclipse, así como invocar a maven desde el propio eclipse. Preparar el workspace para trabajar con maven ----------------------------------------------- .. note:: si nos hemos descargado el workspace siguiendo las instrucciones del documento *Cómo montar un workspace con Eclipse* (ver documentos relacionados), ya tendremos el workspace preparado. Para que el eclipse sea capaz de encontrar el repositorio de maven es necesario configurar la variable en el workspace. Esto lo podemos hacer de forma sencilla empleando el plugin *eclipse* de maven, con el objetivo:: mvn configure eclipse workspace Al hacerlo desde eclipse, ya tomará por defecto el valor del path del workspace sobre el que estamos trabajando. Si queremos lanzarlo desde consola, la instrucción es:: mvn eclipse:add-maven-repo -Declipse.workspace=WORKSPACE_PATH En 'WORKSPACE_PATH' especificaremos la ruta absoluta al workspace. Generación de proyectos de eclipse desde maven ----------------------------------------------- .. note:: los proyectos generados desde eclipse con los objetivos *create library* y *create extension* ya generan también automáticamente el proyecto de eclipse. Si tenemos un proyecto configurado con maven, no es necesario crear manualmente el proyecto de eclipse, ya que maven puede generarlo por nosotros. Para ello bastará con usar el siguiente objetivo:: mvn eclipse Desde consola, la instrucción equivalente es:: mvn -P eclipse-project .. note:: La forma habitual de generar un proyecto de eclipse desde maven es emplear la instrucción *mvn eclipse:eclipse*. Sin embargo, para algunos proyectos, como los que generan varios jars en los que se incluyen clases de tipo *Library*, el plugin de maven que genera los proyectos de eclipse no es capaz de generar toda la configuración necesaria, por lo que se ha creado un perfil desde el que se invoca al plugin de eclipse y, además, añade el resto de configuración necesaria. Si en algún caso se creara el proyecto de eclipse sin usar el perfil *eclipse-project*, el único problema es que los tests unitarios que empleen el mecanismo de inicialización automática de librerías no funcionaran si los lanzamos desde eclipse. Esto generará los archivos de eclipse necesarios, que nos permitirán importar el proyecto desde eclipse, con todas las dependencias, directorios de fuentes, etc. ya definidos. Si ya existe el proyecto de eclipse, el objetivo anterior no lo sobreescribe, para ello tenemos que emplear antes el objetivo:: mvn eclipse clean O desde consola:: mvn eclipse:clean En los proyectos de gvSIG, está configurado de forma que, además de descargar y enlazar las dependencias binarias (jars con clases) en el proyecto de eclipse, maven intentará descargar también los jars con los fuentes y los javadocs correspondientes, enlazándolos a cada jar de binarios. Esto nos permitirá ver fácilmente la documentación y el código fuente de las dependencias de nuestros proyectos. Por otro lado, si generamos los proyectos de eclipse para un grupo de proyectos, maven nos enlazará las dependencias entre los proyectos del grupo a nivel de proyecto, en vez de a nivel de archivo jar. Esto permite que los proyectos de eclipse no se suban al repositorio de fuentes de gvSIG, ya que se pueden generar fácilmente para un proyecto o conjunto de proyectos. Cómo invocar maven desde eclipse ---------------------------------- Para facilitar el uso de maven desde eclipse, se han preparado una serie de lanzadores con los objetivos más usados en los proyectos con maven. Dichos lanzadores están definidos dentro del proyecto *build*, por lo que una vez incluido este proyecto en nuestro workspace de eclipse, los tendremos disponibles automáticamente. Para lanzar cualquiera de ellos deberemos tener abierto el proyecto sobre el que queremos trabajar, y seleccionar el lanzador correspondiente desde la opción de *Herramientas externas (External Tools)*. Errores habituales ------------------- - **Eclipse no detecta una dependencia en el repositorio de maven, aunque el jar correspondiente sí que existe en disco** Por alguna razón, parece que Eclipse no se da cuenta de cambios en librerías de dependencias que están puestas a través de una variable de entorno. Incluso refrescando y recompilando el proyecto a veces no detecta el jar correspondiente. Una forma que suele funcionar consiste en: 1. Cerrar el proyecto. 2. Abrir el proyecto. 3. Recompilar el proyecto.