sábado, 9 de enero de 2010

Organizando Proyectos con Maven

Maven es una herramienta que ayuda a la construcción de aplicaciones en Java, quizás en un principio parece un retroceso al comparar esta herramienta con un editor como Eclipse, ya que esta herramienta es principalmente utilizada en la linea de comandos, pero sus objetivos son diferentes, mientras eclipse ayuda a la digitación del código, Maven ayuda en la compilación,pruebas unitarias,documentación y organización del proyecto. Quizás la organización del proyecto es su punto mas fuerte, ya que mediante sus repositorios ofrece una vía para organizar y catalogar las librerías usadas.


En todo gran proyecto la creación de librerías reutilizables es de gran importancia, primero para no duplicar el código que indica la manera en como se realizan algunas cosas, por ejemplo la manera de validar algún tipo de información no debería estar en mas de un lugar ya que al estar en mas de un lugar permite que existan versiones diferentes y Segundo para ahorrar trabajo. En el repositorio central de Maven es posible encontrar casi todas las librerías Java disponibles por los proyectos OpenSource y en diferentes versiones, con lo que la dependencia a estas librerias externas comienza a estar ordenada. Para agregar una dependencia a una libreria solo basta agregarla a el archivo principal de Maven, el pom.xml, en este archivo se indica el nombre del proyecto, grupo, dependencias y muchas cosas mas. Por ejemplo casi todo proyecto en Java incluye la libreria log4j, esta se incluye dentro del pom.xml de la siguiente manera.



Con solo esta sección en el xml, Maven se encargara de descargar la versión de la librería indicada y agregarla a nuestro proyecto, además si la librería que estamos incluyendo para funcionar tuviera otras dependencias, Maven se encargara de descargar todas las librerías que esten presentes en el árbol de dependencias, esto es posible por que cada librería tiene su propio pom.xml que indica cuales son sus dependencias. Las librerías descargadas quedan en repositorio local de la maquina que esta compilando el proyecto, con lo que la descarga se realiza solo una vez.
Pero ¿y las librerías que creamos en nuestro proyecto?. Bueno para esto lo ideal es implementar un repositorio para nuestra organización, afortunadamente existen repositorios OpenSource disponibles, como por ejemplo Archiva de Apache, si instalamos Archiva dentro de nuestra organización, podremos compartir nuestras librerías de una manera ordenada y automatizada, además Archiva se puede configurar como un proxy del repositorio central de Maven por lo que si alguien necesita una librería que esta en el repositorio central de Maven, Archiva pedirá esta librería y la almacenara, para que si otro desarrollador necesita la librería ya este en modo local, con esto ayudamos al repositorio central y mejoramos los tiempos de compilación ya que al estar todo en la red local son mas rápidas las descargas.
Con un repositorio local implementado la organización de nuestros proyectos se ve potenciada y a la vez exigida, ya que el diseño de cualquier proyecto o librería se ve casi obligado a pensar en como compartirá sus librerías y cuales consumirá, lo cual ayuda de gran manera al diseño de proyectos.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.