Sunteți pe pagina 1din 3

Abstract-- This document detailing clearly the tool for managing

and building projects in java called Maven, general concepts,


considerations for their use, advantages in addition to architectural
characteristics of projects, all these issues will be taken from
various books and reports will define.

Keywords-- I DEs; estructura; gestin; construccin de un proyecto;
control de versiones; automatizacin; framework; apache;
desarrollo;
I. INTRODUCCIN
La gestin de proyectos es una tarea complicada dentro del
desarrollo de software, los programadores ocupan mucho
tiempo y esfuerzo automatizando tareas para otros [1], pero
surge la interrogante como automatizar tareas para los
programadores, los IDEs
1
automatizan muchos procesos pero
a veces los desarrolladores buscan herramientas externas para
que realicen una tarea en particular referente al proceso de
construccin como desarrollo, compilacin, prueba o
despliegue de software [2].

Hoy en da existen mltiples herramientas que facilitan esta
tarea, una de las ms conocidas es apache ANT
2
, esta es una
herramienta usada en programacin Java para la realizacin de
tareas mecnicas y repetitivas, normalmente durante la fase de
compilacin y construccin.
Otra herramienta muy utilizada en la gestin de proyectos Java
es apache Maven, en este documento se detallara con claridad
algunos puntos clave que permitirn obtener una idea mucho
ms clara de la gestin de proyectos con esta herramienta [1].

Apache Maven es una herramienta de lnea de comando es
decir que no utiliza interfaz grfica que permite gestionar los
distintos directorios de un proyecto de manera automtica [3].

Maven da soluciones a tareas que abarcan desde la
compilacin hasta la distribucin, despliegue y documentacin
de los proyectos. Se podra describir como un sistema de
estndares, un repositorio, y un software usado para manejar y
describir proyectos. Define un ciclo de vida estndar para la
construccin, prueba, y despliegue de componentes del
proyecto [2].






1
Entorno de Desarrollo Integrado

2
Another Neat Tool
II. DESARROLLO
A. Concepto
Apache Maven es un potente framework de gestin de
proyectos que proporciona un modelo estndar de gestin y
descripcin de proyectos.
Su funcionalidad es similar a Apache Ant, pero es mucho ms
simple de configurarlo [3].

Se basa en un fichero central, pom.xml, donde se define todo
lo que necesitara el proyecto [5]. Maven maneja las
dependencias del proyecto, compila, empaqueta y ejecuta los
test, mediante plugins, permite hacer mucho ms, como por
ejemplo generar los mapas de Hibernate a partir de una base
de datos, desplegar la aplicacin, etc.
Maven da soluciones a tareas que abarcan desde la
compilacin hasta la distribucin, despliegue y documentacin
de los proyectos.

El principal objetivo de Maven es que un desarrollador pueda
adaptarse al mtodo de trabajo de un proyecto en el menor
tiempo posible, disminuyendo su curva de aprendizaje. De
hecho, Maven naci como un proyecto interno en Apache,
para ayudar al desarrollo de su proyecto Jakarta Turbine [1].

B. Conceptos fundamentales
A continuacin se detallan conceptos clave referentes al
funcionamiento de Maven [5]
1) POM (Project Object Model): es un archivo principal de
la configuracion de apache Maven, en donde se incluyen la
informacin necesaria para que se pueda construir y gestionar
un proyecto.
2) Arquetipo: crea la arquitectura del proyecto, el
contenido del pom.xml, la estructura de los ficheros y
carpetas.
3) Plugin: Componente externo de software que agrega
mayor funcionalidad
4) Ciclo de vida: secuencia organizada de fases que se
encargan de ejecutar tareas determinadas.
C. Porque utilizar apache Maven [1]
1. Nos permite un fcil manejo de dependencias y
actualizaciones automticas de las mismas
2. Contaramos de un repositorio central de libreras y
metadatos, liberando as al sistema de control de
versiones de contener jars.
3. Ayuda a la generacin de documentacin, asociada al
proyecto
4. Realizacin de test unitarios automticamente
Apache MAVEN
Ricardo Eduardo Orellana Yanza
Universidad Politcnica Salesiana
rorellanay@est.ups.edu.ec

5. Acceso instantneo de nuevas funcionalidades con
una mnima o ninguna configuracin
6. Maven da soporte a todas las fases del ciclo de un
proyecto java tales como:
Validacin
Compilacin
Pruebas
Empaquetado
Integracin
Verificacin
Instalacin
Despliegue
D. Arquitectura de un proyecto Maven
Un proyecto Maven es un proyecto de desarrollo definido en
un archivo principal de configuracin pom.xml donde se
especifica cmo se construir el proyecto [4].
La estructura por defecto se define en la Fig. 1:
pom.xml: archivo de configuracin de Maven
src/main/java: en este directorio se encuentran los
archivos java que formaran parte del proyecto.
src/main/resources: en este directorio se encuentran
los recursos y ficheros con distintas propiedades que
forman parte del proyecto.
src/main/webapp: en este directorio se encontraran
los archivos tpicos de un proyecto web (JSP, CSS,
Web-Inf, etc)
src/test/java: dentro de este directorio se encuentran
las clases de test del proyecto.
src/test/resources: en este directorio se encentraran
los recursos y archivos de configuracin para los test

E. Ventajas
Homogeneidad de la estructura y de la forma de
trabajar, facilitando el mantenimiento de los sistemas
y disminuyendo la curva de aprendizaje generada en
proceso de adaptacin al proyecto.
Control del cdigo fuente, todos los integrantes del
proyecto saben dnde est el cdigo fuente, y hacen
uso del mismo actualizado.
Control de calidad del cdigo, para ello utiliza
diversos plugins y funcionalidades como PMD,
CheckStyle, JDepend [5].
Creacin automtica de informes y documentacin.
En todo momento se conocen las mltiples
dependencias del proyecto referente a las libreras.
Despliegue automtico de versiones en los diversos
entornos de desarrollo, preproduccin y produccin
[4].
Generacin automtica de ficheros de configuracin.
Ejecucin automtica de pruebas unitarias (JUnit).
Integracin con IDEs como Eclipse [2].
Maven permite una sencilla gestin simultnea de
varios proyectos.
Maven dispone de un enorme repositorio de libreras
Open Source en constante actualizacin, de forma
que los desarrolladores pueden acceder a las
versiones mz actualizadas de las mismas.


F. Archivo pom.xml
Dentro de un proyecto Maven las dependencias,
construcciones y artefactos deben ser descritos, esta definicin
debe ser escrita en un archivo xml llamado POM acrnimo de
Project Object Model, este archivo indica como Maven debe
realizar sus tareas y modificar su comportamiento por defecto
[3].
Este archivo se divide en 4 apartados como se puede ver en la
Fig. 2.
pom relationships: En este apartado se configuran las
relaciones y dependencias del mdulo con otros
proyectos
Build settings: en esta seccin se configura el
comportamiento de Maven.
General project information: esta seccin incluye
informacin general del proyecto como descripcin,
desarrolladores, responsables, etc.
Build-Enviroment: en este apartado se configura el
entorno para la ejecucin de Maven.
G. Figuras y Tablas



Fig. 1. Arquitectura de un proyecto Mave [1].


Fig. 2. Arquitectura del archivo pom.xml [2].


III. CONCLUSIONES
En definitiva la utilizacin de Maven en proyectos java
permite tener una mayor homogeneidad en procesos de
desarrollo, asegurando la calidad del cdigo fuente, adems
permiten reducir tiempos pues el programador no tiene que
preocuparse en verificar cada de una de las dependencias tanto
de libreras y componentes de terceros, adems de las
dependencias entre proyectos, control de versione y la
generacin de archivos de configuracin de dichas
dependencias puesto que Maven proporciona soporte para
dichas actividades.

IV. BIBLIOGRAFA



[1] M. A. C. Mora, Introduccin a Maven, 23 agosto 2013.
Available: http://prezi.com/pdtdew0wjbcx/introduccion-a-
maven/.
[2] S. Laungh, Ingenieria de sistemas, 2014 Enero 31.
http://www.ingenieriadesistemas.info/2014/01/introduccion-
apache-maven.html.
[3] Wikipedia.http://es.wikipedia.org/wiki/Maven.
[4] Desarrollo y software, 26 Julio 2011.
http://www.genbetadev.com/java-j2ee/introduccion-a-maven.
[5] Andalucia, Introduccin a Maven y su aplicacin en el
Repositorio de Software Libre, Madrid, 2011.
[6] Manual de Uso de Maven, Madrid, 2013.

S-ar putea să vă placă și