Eclipse: el núcleo del entorno de desarrollo

[Actualización 081101: Maven2, JBoss Tools con Seam]
[Actualización 081102: TestNG]

Un programador debe programar. Se programa con el . Todo lo que le suponga a la persona salirse de él, va a ser trabajo adicional que no es bienvenido.
Sin embargo, en el entorno de desarrollo tenemos repositorio de código, gestor de tareas, servidores, bases de datos, sistemas de integración contínua... Todas esas herramientas tienen su utilidad, pero interesa controlar todo desde un único punto.
Además, probablemente tengamos a un señor con corbata empeñado en saber en qué emplean las horas los programadores, cómo van los proyectos... Tenemos que maximizar la información minimizando el trabajo de soporte.
Nuestro objetivo aquí es integrar el Eclipse con el resto de herramientas lo máximo posible. En este breve artículo hablaremos también de Mylyn, ese "interfaz orientado a tareas" que integra Ganymede.

Nos centraremos en la forma de integrar Eclipse con el resto de elementos del entorno, dejando las virtudes y defectos de cada uno en los enlaces sugeridos.

Subversion
Una de las razones para usar Subversion sobre CVS es que Ganymede integra soporte nativo para el mismo. Bueno, casi. Por un problema de licencias tendremos que instalar el plugin de Subversive y un conector SVN.
En los enlaces tenemos los update center que configurar en Eclipse para instalar todo. Partiendo del Eclipse J2EE no lo conseguí. Insisto en mi recomendación de comenzar con el Eclipse básico.
El trabajo diario de sincronización esencialmente es igual que con el CVS, así que no voy a profundizar más en esto.
// TODO: ¿cambios?

Trac
Para poder conectar el Trac como repositorio de tareas con Mylyn/Eclipse hay que hacer dos pasos adicionales.
Por un lado, tenemos que instalar el conector de Trac, que no viene en la distribución por defecto de Mylyn. En la página de descarga de Mylyn tenemos el update center de los extras.
Por otro, tenemos que instalar el plugin que permite acceder a Trac mediante xml rpc.
Hecho esto podremos configurar el repositorio de tareas del proyecto (propiedades del proyecto --> Repositorio de tareas --> Añadir nuevo repositorio). En la vista "Task list" (no confundir con la tradicional "Tasks" de TODOs y FIXMEs) tendremos los tickets. Si no te aparecen todos (como a mí), botón derecho sobre la vista --> new --> query, y sin filtrar te aparecerá.
Si quieres saber qué es Mylyn, echa un ojo al webminar. Realmente creo que es muy interesante, y que puede cambiar (¡y facilitar!) la forma de trabajar.
Desde el punto de vista de la integración con Trac, se puede tanto crear nuevas tareas/tickets como editar los existentes. Además, marcar una tarea como activa registra el tiempo empleado en ella. A aprenderse los atajos de Mylyn ;).
Hay cosas que todavía no están integradas como ambos, como el seguimiento de tareas, pero están en ello.

JBoss Server
JBoss, aparte de tener su propia versión de Eclipse, el JBoss Developer Studio (de pago, que yo creía que iban a redenominar Red Hat Developer Studio), libera un conjunto de plugins bajo la denominación JBoss Tools que puedes descargar.
Desde la vista "Servers" se pueden crear nuevos servidores. Hay conectores específicos para cada versión, que se autoconfiguran con indicar el directorio donde has descomprimido la distribución del servidor.

Seam
Seam es la niña bonita de JBoss en lo que a desarrollo Java empresarial en estos momentos, y JBoss Tools tiene soporte para ello. Para activarlo, en las propiedades de Eclipse, buscamos Seam y configuramos la ruta en la que nos hemos descargado el framework.

Google App Engine (PyDev)
La integración de Eclipse hacia el Google App Engine la conseguiremos a través de PyDev.
Una vez configurado el PyDev (consultar documentación), añadimos los módulos de Google App Engine para que funcione el autocompletar, entre otras cosas. Hay que meter en los módulos el directorio en el que hemos descomprimido el GAE, y los tres que hay dentro de lib (más información sobre configurar GAE en PyDev en otro blog).

También interesa ejecutar el servidor desde el entorno, especialmente para ver en la consola los mensajes. Creamos una nueva configuración de lanzamiento (Run --> Run Configurations... --> New --> Phython Run). Como módulo principal configuraremos la ruta al lanzamiento del servidor, "dev_appserver.py". En el PYTHONPATH estarán las de python y una de pydev (al menos con mi versión) Como argumentos, estos (el puerto es un ejemplo):
${project_loc}
--port=9999

MySQL
Descargamos el mysql java connector.
En la vista "Data Source Explorer" podemos definir una conexión a una base de datos. Con el botón "New Connection Profile" elegiremos "Generic JDBC", un nombre, y pondremos la siguiente configuración (ejemplo de acceso a mi base de datos de Amarok):
URL: jdbc:mysql://localhost:3306/amarok
Driver class: com.mysql.jdbc.Driver
Usuario y nombre de la base de datos.
Jar descargado del conector.

Hudson
Se está desarrollando un plugin para conectar Eclipse con Hudson, actualmente en su versión 1.0.4. Introduce una vista en la que se listan los builds, y un icono con el estado de los mismos.

Maven2
Hay un plugin de Maven2 para Eclipse. Al instalarlo me dí cuenta de que no estaba ejecutando Eclipse sobre el JDK de Sun, sino sobre otro JRE (requisito de Maven2). Para solucionarlo, sudo aptitude install sun-java6-jdk, y sudo update-alternatives --set java /usr/lib/jvm/java-6-sun/jre/bin/java.

TestNG
Hay un plugin de TestNG para Eclipse. Tras instalarlo basta con botón derecho --> Run As --> TestNG Suite sobre una prueba para ejecutarla.

Posted by Juan Ignacio Sánchez Lara 20:50  

2 Comments:

  1. jcesarperez said...
    Hola Nacho,
    veo que avanzas a buen ritmo, enorabuena!

    Al final me diste un poco de envidia e hice que mi linuxman nos instalara un trac para probar.
    El primer inconveniente que me he encontrado es que está pensando como herramienta monoproyecto y en realidad nosotros solemos trabajar en 3-4 proyectos de forma paralela aunque solo seamos 5 personas.

    Despues de un poco de investigacion lo tenemos en modo multi con una url por proyecto y una pagina creada a mano como puerta de entrada con enlaces a las distintas urls.

    ¿Tu usas otra modo? Yo lo encuentro todo muy manual y poco natural, con el JIRA tenia una autentica gestion por proyecto.
    Nacho said...
    Me temo que no puedo decir que lo use ni profesional ni intensivamente (¡todavía!), así que mucho no lo puedo defender xD.

    Por lo qye he visto, de todas formas, tiene pinta de que el desarrollo está orientado a "levantar" un Trac por proyecto.

    Ójala sigas poniendo aquí todas las experiencias, eso que adelanto =D.

Post a Comment