miércoles, 11 de febrero de 2015

Maven y los proyectos java

Hola jabatos:

Hoy quiero hablar un poco de Maven. Supongo que casi todos habréis oído hablar de Maven, y que la mayoría tiene claro que es y para que sirve. No obstante, para aquellos que no tienen muy claro lo que es Maven está dirigido este post.



¿Qué es Maven? Maven es una herramienta de software que podemos definir como una herramienta administrativa. Su principal función es la construcción de proyectos y la gestión en las diversas fases del proyecto. Algunas características son:
  • Comprueba que el proyecto está correcto y sin errores de compatibilización.
  • Empaqueta nuestros proyectos listos para entregar. (JAR, WAR, etc)
  • Instala, organiza y homogeneiza dependencias requeridas por nuestro proyecto.
  • Mantiene una copia de las fuentes y de las dependencias requeridas.

GESTIÓN DE DEPENDENCIAS

Una de las más potentes características de Maven es la gestión de dependencias.

Nuestros proyectos pueden necesitar librerías o plugins exteriores (Hibernate, PrimeFaces, JUnit, etc.etc.) Estas librerías suelen ser ficheros .jar, que a su vez necesitan algunas fuentes adicionales o no, en función de la construcción como proyecto de esas fuentes exteriores.


Esas librerías exteriores para manejar diversos aspectos de la aplicación, son llamadas dependencias en Maven. Maven nos permite instalar dependencias, y él se ocupa de bajarse el jar, instalarlo, chequear si requiere dependencias adicionales y se las baja e instala.

Ejemplo de dependencia:

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.12</version>
<scope>runtime</scope>
</dependency>


FICHERO POM

La base de Maven es el fichero POM. Es un fichero xml donde se declaran las dependencias, plugins, resources, etc. de nuestro proyecto. 

El fichero POM hace posible la reutilización del código, lo cual permite la estandarización en la construcción de proyectos. Por lo tanto, si un proyecto java creado con Maven, incorpora una serie de ficheros jar para funcionar, estas dependencias pueden ser replicadas por cualquier otro desarrollador solamente con incorporar el fichero POM en su proyecto Maven, evitando así tener que perder tiempo en conseguir montar la instalación. Una vez que alguien ha hecho el trabajo, los demás no tiene más que hacer nada más que utilizar su POM.

Lo bueno de Maven es que las dependencias se descargan automáticamente por internet, y además se crea en nuestra máquina un repositorio de dependencias utilizadas y/o relacionadas, por lo cual no hay que volver a bajarse aquellas que alguna vez se utilizaron.

INSTALACIÓN DE MAVEN EN ECLIPSE

Desde Eclipse Juno, solo ha habido que implementar el plugin m2e

Luego, en el proyecto à properties à configure à convert-to-maven

Realiza las operaciones necesarias para convertir el proyecto en un proyecto gestionado por Maven.

CONFIGURACIÓN DE MAVEN

La configuración de Maven se hace a través del citado fichero POM.

Datos esenciales en Maven:
  • Group Id: Es el nombre de la organización (empresa) que confecciona el proyecto.
  • Artifact Id: Es el nombre del proyecto a nivel estructural (carpetas). Sería conveniente que sea el mismo que el project Name.
  • Version: Indica la versión de desarrollo que estás manejando (1.0.0 SNAPSHOT), empezando de izquierda a derecha. La palabra SNAPSHOT significa que es una versión de desarrollo.
  • Packaging: Según sea el proyecto, el empaquetado se hará en un formato u otro. Un proyecto de java SE el packaging se configura como JAR. Un proyecto de java EE se configura como WAR.

Para saber más de Maven:  Página oficial de Maven