¿Qué es Maven y para qué se utiliza?

11
44832

Una de las cosas que más me gusta de Java es la gran cantidad de código que hay escrito allá afuera. Son cientos o quizás miles de librerías que podemos utilizar para múltiples propósitos. Programar no significa inventar la rueda sino aprovechar los recursos que ya existen de la mejor forma para lograr los objetivos propuestos.

Una de las herramientas más útiles a la hora de utilizar librerías de terceros es Maven. Maven se utiliza en la gestión y construcción de software. Posee la capacidad de realizar ciertas tareas claramente definidas, como la compilación del código y su empaquetado. Es decir, hace posible la creación de software con dependencias incluidas dentro de la estructura del JAR.

Es necesario definir todas las dependencias del proyecto (librerías externas utilizadas) en un fichero propio de todo proyecto Maven, el POM (Project Object Model). Este es un archivo en formato XML que contiene todo lo necesario para que a la hora de generar el fichero ejecutable de nuestra aplicación este contenga todo lo que necesita para su ejecución en su interior.

Sin embargo, la característica más importante de Maven es su capacidad de trabajar en red. Cuando definimos las dependencias de Maven, este sistema se encargará de ubicar las librerías que deseamos utilizar en Maven Central, el cual es un repositorio que contiene cientos de librerías constantemente actualizadas por sus creadores. Maven permite incluso buscar versiones más recientes o más antiguas de un código dado y agregarlas a nuestro proyecto. Todo se hará de forma automática sin que el usuario tenga que hacer nada más que definir las dependencias.

Maven puede ser descargado e instalado desde su página oficial. Sin embargo el uso de consola para algunos usuarios puede ser un poco tedioso.

Screen-shot-2011-03-14-at-10.45.03

Netbeans posee integración con Maven, es decir, podemos crear proyectos que utilicen Maven aprovechando la interface gráfica de Netbeans. Veamos un ejemplo de cómo crear proyectos Maven, agregar dependencias y descargar las librerías necesarias desde el repositorio remoto.

Creación de un proyecto Maven

Lo primero que haremos será ir a Netbens y crear un nuevo proyecto. Debemos tener cuidado de escoger Maven/Java Application a la hora de escoger el tipo de proyecto.

que es maven y para que se utiliza

 

Llamaré mi proyecto MavenTest.

En este proyecto voy a agregar las dependencias de JFreeCharts. Podemos buscar los repositorios que necesitamos en la siguiente dirección:

http://mvnrepository.com/

En el caso de JFreeCharts podemos encontar las dependencias en la siguiente dirección:

http://mvnrepository.com/artifact/org.jfree/jfreechart

Yo escogeré la versión 1.0.19 para este ejemplo. La dependencia es la siguiente:

Existen dos formas de agregar esto a nuestro proyecto, ya sea a través de la interfaz gráfica de usuario o colocando esta dependencia directamente en el archivo pom.xml

Lo haremos a través de la interfaz gráfica de usuario. El árbol de nuestro proyecto es ligeramente diferente al de una aplicación común de Java.

que es maven y para que se utiliza

Vemos que en el caso del proyecto Maven tenemos las carpetas Java Dependencies, Dependencies y Project Files. Vamos a darle clic derecho a la carpeta Dependencies y escogeremos la opción Add Dependency.

que es maven y para que se utiliza

 

Nos aparece una ventana donde colocaremos la información de JFreeCharts.

que es maven y para que se utiliza

Al hacer clic en «Add» se agregará a nuestro proyecto todo lo que necesitamos para utilizar JFreeCharts. Al final del proceso de descarga tendremos nuestro proyecto con sus respectivas dependencias ya instaladas y listas para utilizar.

que es maven y para que se utiliza

Si verificamos el archivo pom.xml (clic derecho sobre el proyecto, Open POM) veremos lo siguiente:

que es maven y para que se utiliza

Si fuésemos a agregar las dependencias de forma manual basta con copiar el código de dependencias en este archivo y listo. Existen cientos de librerías en los repositorios de Maven. Es posible también utilizar GitHub para hostear repositorios y llamarlos desde Maven. Esta herramienta es sumamente útil y nos facilitará muchísimo la creación de proyectos en Java.

Espero que la información suministrada sea de utilidad para ustedes.

Saludos.

 

5 1 vote
Article Rating
Suscríbete
Notify of
guest

11 Comments
newest
oldest most voted
Inline Feedbacks
View all comments
Pedro
Pedro
4 years ago

muy bien explicado, sabes de algun sitio donde expliquen de esta manera como acceder por ejemplo a los recursos de un proyecto, por ejemplo cuando usas imagenes de iconos para JLabel, etc.

Oscar Gaspar
Oscar Gaspar
4 years ago

que lamentable encontrar por la web personas con este pensamiento : …

«Son cientos o quizás miles de librerías que podemos utilizar para múltiples propósitos. Programar no significa inventar la rueda sino aprovechar los recursos que ya existen de la mejor forma para lograr los objetivos propuestos.»

porque programar significa, volver a inventar constantemente..y en cada intento hacer lo mejor..porque el mundo cambia constantemente… la tecnología cambia constantemente… y tu manera de programar debe de cambiar constantemente…no seas un programador secretaria que solo copia…se original no solo copies .,, se un verdadero programador, que crea.

Jon
Jon
4 years ago
Reply to  Oscar Gaspar

Claro cuando tienes tiempo se puede, pero cuando hay deadlines cortos pues no hay de otra…

jvidalm
jvidalm
4 years ago
Reply to  Oscar Gaspar

En el día a día, no vas a volver a crear conexiones a base de datos porque llego un proyecto nuevo, si ya lo tienes. Esperemos que la experiencia te lo explique mejor amigo.

Juan
Juan
3 years ago
Reply to  Oscar Gaspar

Buena idea

Voy a comenzar a crear mi propia Distro Java y con ello mis propias bibliotecas Java ignorando las que existe o mejor aún creare un nuevo lenguaje así no copio y boto a la basura la creación de mis camaradas.

A después de ello lo comparto
Jajaja

Cesar Jimenez
Cesar Jimenez
6 years ago

¿Cómo utlizo Maven en un proyecto de Netbeans existente?, sería de gran ayuda, soy nuevo en esto

Darwin Omar Guevara Diaz
Darwin Omar Guevara Diaz
7 years ago

simple y entendible 😀

Antony García González
Antony García González
7 years ago

(Y)

Waira Rodriguez
Waira Rodriguez
7 years ago

Las imágenes se ven muy mal. La información es buena.