[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Proyectos: AntDep
- To: mindfood@xxxxxxxxxxxxxxx
- Subject: Proyectos: AntDep
- From: chous <chous@xxxxxxxxxx>
- Date: Wed, 8 Dec 2004 19:24:10 +0100
- Delivered-to: mailing list mindfood@orange-soft.com
- Delivered-to: moderator for mindfood@orange-soft.com
- Mailing-list: contact mindfood-help@orange-soft.com; run by ezmlm
- Organization: acm-sl.org
- User-agent: KMail/1.7.1
Hola a todos,
No es mi intención utilizar Mindfood para publicar "announces" de los
proyectos que desarrollo, pero me interesa recibir feedback sobre los mismos.
En los últimos meses he dado forma a algunas ideas que llevaba relegando a un
segundo plano en favor de unos objetivos más ambiciosos. En ese sentido, me
he dado un pequeño "respiro" :).
En particular, he dedicado mi tiempo a pequeños proyectos, todos destinados a
mejorar la metodología de desarrollo.
Por un lado, no estaba satisfecho con cómo eran gestionadas las dependencias
de los proyectos. Estoy relativamente conforme con Maven, pero no existía una
forma sencilla de aprovechar esa información desde Ant, que no derivara en
una gestión redundante.
Mantener Maven actualizado requiere disciplina, y si se presenta como
"opcional", entonces con el tiempo deja de contener información válida.
Busqué por sourceforge y encontré una tarea de Ant (Greebo[1]) que permitía
definir los classpath y mantener sincronizados los repositorios locales de
Maven, lo cual significaba un pequeño paso adelante.
Sin embargo, seguía obligado a mantener dos archivos que contenían la misma
información, por duplicado: project.xml de Maven y un dependencies.xml de
Ant, utilizado para copiar los archivos (que se obtenían de repositorios de
Maven local o remotos).
Eso me motivó para desarrollar un pequeño plugin de Maven, que generara el
citado dependencies.xml a partir del project.xml. También aproveché para que
generara lo necesario para ejecutar BeanShell desde Emacs correctamente, en
función del proyecto. Dicho proyecto, denominado MavenDep, incluye además
unas pequeñas mejoras, tanto sobre Greebo como sobre Maven.
Por un lado, utiliza enlaces simbólicos en sistemas Unix, en lugar de copiar
archivos incondicionalmente como hace Greebo. Por otro, define unos metadatos
sobre cada una de las dependencias definidas en Maven, para indicar qué tipo
de papel juega cada una en el proyecto: si es necesaria para compilar, para
ejecutar el proyecto, para pasar las pruebas, o para ejecutar alguna
herramienta de desarrollo.
El resultado ha demostrado ser bastante útil en la práctica, y ha permitido
tener más control sobre de qué depende exactamente cada proyecto y por qué.
Estoy aún en proceso de publicar los proyectos usando un servicio de hosting
propio, por eso no os indico la url. Espero poder tenerlo presentable en
breve.
Saludos,
Jose.
[1] http://greebo.sf.net