0% encontró este documento útil (0 votos)
91 vistas11 páginas

Tutorial Maven: Gestión de Proyectos Java

Este documento presenta una introducción a Maven, una herramienta para la gestión de proyectos de software. Explica cómo instalar Maven, crear proyectos y usar el archivo pom.xml para describir los proyectos y sus dependencias. También cubre temas como compilar, empaquetar, generar documentación y ejecutar pruebas con Maven.

Cargado por

carlosjoa
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
91 vistas11 páginas

Tutorial Maven: Gestión de Proyectos Java

Este documento presenta una introducción a Maven, una herramienta para la gestión de proyectos de software. Explica cómo instalar Maven, crear proyectos y usar el archivo pom.xml para describir los proyectos y sus dependencias. También cubre temas como compilar, empaquetar, generar documentación y ejecutar pruebas con Maven.

Cargado por

carlosjoa
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Avenida de Castilla,1 - Edificio Best Point - Oficina 21B

28830 San Fernando de Henares (Madrid)


tel./fax: +34 91 675 33 06
info@[Link] - [Link]

¿Qué ofrece Autentia Real


Business Solutions S.L?
Somos su empresa de Soporte a Desarrollo Informático.
Ese apoyo que siempre quiso tener...

1. Desarrollo de componentes y
proyectos a medida

2. Auditoría de código y recomendaciones de mejora

3. Arranque de proyectos basados en nuevas


tecnologías

1. Definición de frameworks corporativos.


2. Transferencia de conocimiento de nuevas arquitecturas.
3. Soporte al arranque de proyectos.
4. Auditoría preventiva periódica de calidad.
5. Revisión previa a la certificación de proyectos.
6. Extensión de capacidad de equipos de calidad.
7. Identificación de problemas en producción.

3a
RFP Concurso Verificación
Gran Empresa previa
Consultora 1 Producción
Tecnología Consultora 2 Certificación
Desarrollo o Pruebas
Consultora 3
Sistemas 3b
Piloto
Equipo propio desarrollo autentia

4. Cursos de formación (impartidos por desarrolladores en activo)

Control de autenticación y JPA-Hibernate, MyBatis


Spring MVC, JSF-PrimeFaces /RichFaces,
acceso (Spring Security) Motor de búsqueda empresarial (Solr)
HTML5, CSS3, JavaScript-jQuery
UDDI ETL (Talend)
Web Services
Rest Services Dirección de Proyectos Informáticos.
Gestor portales (Liferay)
Social SSO Metodologías ágiles
Gestor de contenidos (Alfresco)
SSO (Cas) Patrones de diseño
Aplicaciones híbridas
TDD

Tareas programadas (Quartz) BPM (jBPM o Bonita)


Gestor documental (Alfresco) Generación de informes (JasperReport)
Inversión de control (Spring) ESB (Open ESB)

Compartimos nuestro conociemiento en: Para más información visítenos en:


[Link] [Link]
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML,... [Link]

Home | Quienes Somos | Empleo | Tutoriales | Contacte

Tutorial desarrollado por: Alejandro Perez García 2003-2006


Alejandro es Socio fundador de Autentia y nuestro experto en J2EE, Linux y
optimización de aplicaciones empresariales.

Si te gusta lo que ves, puedes contratarle para impartir cursos presenciales en tu empresa o
para ayudarte en proyectos (Madrid).

Contacta: alejandropg@[Link].

Descargar este documento en formato PDF [Link]

Firma en nuestro libro de Visitas

OpenTime - Free Download Master Java J2ee Oracle Free UML 2.0 Design Tool Projectes i Enginyeria
Time Recording Planning 100% alumnos ya trabajan. Visually develop applications with Projectes i Dictaments Obres i
Controlling Vacation and Overtime Nuevo temario de Struts + J2ME. Roundtrip model to code, ERD & Instal·lacions
Account [Link] DB [Link]
[Link]/en [Link]

Maven, nunca antes resultó tan fácil compilar, empaquetar, ...


Creación: 16-09-2006

Índice de contenidos
1. Introducción
2. Entorno
3. Instalación de Maven
4. Creando proyectos y los arquetipos
5. El fichero [Link]
6. Como compilar, empaquetar, ...
7. El repositorio de Maven
8. Creando el proyecto Web
9. Definiendo dependencias
10. Un [Link] para controlarlos a todos
11. Configurando los plugins de Maven y heredando la configuración
12. Creación de perfiles
13. Como publicar una nueva “release” de nuestro proyecto
14. Conclusiones
15. Sobre el autor

1. Introducción
Maven ([Link] es una herramienta para la gestión de proyectos de software, que se basa en el concepto de POM (Proyect
Object Model). Es decir, con Maven vamos a poder compilar, empaquetar, generar documentación, pasar los test, preparar las builds, ...

Ahora muchos pensaréis que eso ya los sabemos hacer con Ant ([Link] pero no debemos confundirnos, ya que Maven y Ant
son cosas totalmente diferentes. Algunas de las principales ventajas de Maven frente a Ant, podrían ser:

Maven se basa en patrones y en estándares. Esto permite a los desarrolladores moverse entre proyectos y no necesitan aprender com
compilar o empaquetar. Esto mejora el mantenimiento y la reusabilidad.

1 de 10 20/09/2006 13:46
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML,... [Link]

Mientras que con Ant escribimos una serie de tareas, y unas dependencias entre estas tareas; con el POM hacemos una descripción de
proyecto. Es decir, decimos de que se compone nuestro proyecto (nombre, versión, librerías de las que depende, ...), y Maven se
encargará de hacer todas las tareas por nosotros.

Maven hace la gestión de librerías, incluso teniendo en cuenta las dependencias transitivas. Es decir, si A depende de B y B depende d
C, es que A depende de C. Esto quiere decir que cuando empaquetemos A, Maven se encargará de añadir tanto B como C en el paquet

En cualquier caso no tienen por que ser herramientas enfrentadas, sino que pueden ser complementarias. Usando cada una según nos
interese.

En este tutorial vamos a ver como trabajar con Maven, y como explotar algunas de sus características. El caso de ejemplo que vamos a utiliz
será un proyecto java normal que llamaremos autentiaNegocio y que depende del driver de MySQL ([Link] para poder
acceder a la base de datos, y un proyecto web que depende de “autentiaNegocio” y que llamaremos “autentiaWeb”.

2. Entorno
El tutorial está escrito usando el siguiente entorno:

Hardware: Portátil Ahtec Signal 259M MXM (Sonoma 2.1 GHz, 2048 MB RAM, 100 GB HD).

Sistema Operativo: GNU / Linux, Debian Sid (unstable), Kernel 2.6.17, KDE 3.5

Máquina Virtual Java: JDK 1.5.0_08 de Sun Microsystems

Maven 2.0.4

3. Instalación de Maven
Debemos descargarnos el paquete de Maven (por ejemplo [Link].bz2) de [Link]
(es recomendable elegir un mirror para la descarga).

Una vez descargado, tenemos que descomprimirlo en nuestro ordenador. Por ejemplo, suponiendo que nos hemos descargado el paquete de
Maven en /download, podemos hacer:

$ cd /opt
$ tar -xjf /download/[Link].bz2

Esto nos creará el directorio /opt/maven-2.0.4.

Ahora basta con añadir el directorio /opt/maven-2.0.4/bin al PATH del sistema:

export PATH=$PATH:/opt/maven-2.0.4/bin

Para comprobar que está correctamente instalado podemos probar a ejecutar:

$ mvn --version

Si tenemos algún problema podemos comprobar si la variable JAVA_HOME apunta correctamente a la localización donde está instalada nuest
JDK.

4. Creando proyectos y los arquetipos


Podríamos decir que un “arquetipo” para Maven es una plantilla. Es decir, gracias a un arquetipo Maven es capaz de generar una estructura d
directorios y ficheros.

Con los arquetipos se acabo “el miedo al folio en blanco” a la hora de empezar un proyecto, ya que basta con decirle a Maven que tipo de
proyecto queremos y nos creará la estructura base.

Por ejemplo, para crear nuestro proyecto java basta con hacer:

$ mvn archetype:create -DgroupId=[Link] -DartifactId=autentiaNegocio

Donde groupId es el identificador único de la organización o grupo que crea el proyecto (se podría decir que es el identificador de la
aplicación), y artifactId es el identificador único del artefacto principal de este proyecto (se podría decir que es el identificador del módulo
dentro de la aplicación), es decir, este será el nombre del jar.

2 de 10 20/09/2006 13:46
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML,... [Link]

En el comando no ha hecho falta decir que queremos construir un proyecto java, ya que esta es la opción por defecto.

El resultado de ejecutar este comando es la siguiente estructura de directorios y ficheros:

autentiaNegocio
|-- [Link]
`-- src
|-- main
| `-- java
| `-- com
| `-- autentia
| `-- demoapp
| `-- [Link]
`-- test
`-- java
`-- com
`-- autentia
`-- demoapp
`-- [Link]

Esta estructura de directorios es estándar, siendo la misma en todos los proyectos. Maven nos permite cambiar esta estructura, pero no sería
recomendable ya que el hecho de que sea estándar permite a los desarrolladores moverse entre proyectos con mayor comodidad, ya que
siempre sabrán donde encontrar las cosas. Para más información sobre la estructura de directorios se puede consultar
[Link]

5. El fichero [Link]
El fichero [Link] es donde vamos a describir nuestro proyecto. Vamos a echar un vistazo al fichero [Link] que nos ha generado Maven:

<project xmlns="[Link] xmlns:xsi="[Link]


xsi:schemaLocation="[Link] [Link]
<modelVersion>4.0.0</modelVersion>
<groupId>[Link]</groupId>
<artifactId>autentiaNegocio</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>Maven Quick Start Archetype</name>
<url>[Link]
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

Con packaging se indica el tipo de empaquetado que hay que hacer con el proyecto. Podemos usar jar, war, ear, pom.

Con version se indica la versión del proyecto con la que estamos trabajando. Al indicar SNAPSHOT se quiere decir que es una versión evolutiv
es decir que estamos trabajando para obtener al versión 1.0.

También podemos ver como dentro de dependecies se describen las dependencias del proyecto. Ahora tenemos una dependencia de junit par
poder compilar y ejecutar los test. Dentro de la descripción de las dependencias es interesante destacar el elemento scope que indica que tip
de librería se trata. Podemos distinguir:

compile – es el valor por defecto. Se utiliza en todos los casos (compilar, ejecutar, ...).

provided – también se utiliza en todos los casos, pero se espera que el jar sea suministrado por la JDK o el contenedor. Es decir, no s
incluirá al empaquetar el proyecto, ni en el repositorio.

runtime – no se utiliza para compilar, pero si es necesario para ejecutar.

test – Sólo se utiliza para compilar o ejecutar los test.

system – es similar a provided, pero eres tu el que tiene que suministrar el jar. No se incluirá al empaquetar el proyecto, ni en el
repositorio.

3 de 10 20/09/2006 13:46
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML,... [Link]

Para saber más se puede consultar [Link]

6. Como compilar, empaquetar, ...


Ahora mismo, sin haber escrito ni una línea ya podemos hacer todas las tareas habituales (esto con Ant no sería tan fácil ;):

$ mvn compile – compila el proyecto y deja el resultado en target/classes

$ mvn test – compila los test y los ejecuta

$ mvn package – empaqueta el proyecto y lo dejará en taget/[Link]

$ mvn install – guarda el proyecto en el repositorio

$ mvn clean – borra el directorio de salida (target)

...

Estas tareas son estándar, por lo que un desarrollador puede saltar de un proyecto a otro y siempre sabrá compilar, empaquetar, ...

Maven define un ciclo de vida por lo que al ejecutar un objetivo, antes se ejecutan los sus antecesores en el ciclo de vida. Por ejemplo, si
ejecutamos package, antes se ejecutará compile y test.

Para saber más sobre el ciclo de vida de Maven se puede leer [Link]

7. El repositorio de Maven
Ya hemos hablado en un par de ocasiones del “repositorio”. Maven guarda todas las dependencias y proyectos en un único repositorio.

Este repositorio está situado en <USER_HOME>/.m2/repository (aunque Maven nos permite cambiar esta localización por defecto.

También existe un repositorio remoto desde el cual se descargan los diferentes jars según los vamos necesitando. Esto ya lo habréis notado a
ejecutar los primeros comando de Maven; seguro que habéis visto como Maven se ponía a descargar varias cosas (ojo, si salís a Internet a
traves de un proxy, lo tendréis que configurar en Maven [Link]

Este repositorio remoto también podemos cambiarlo, e incluso podemos tener más de uno. Sería muy interesante que dentro de nuestra
organización tuviéramos un repositorio remoto donde publicar todos nuestros proyectos.

Para saber más podéis leer [Link]

En general esta idea es bastante buena porque no hace falta que tengamos los jar duplicados en el sistema de control de versiones, dentro d
cada proyecto. Sobre todo con los jar de terceros, ya que ocupan espacio y es algo que no tiene utilidad que versionemos (lo interesante es
saber en cada versión de nuestro proyecto que dependencias tenía pero no versionar la dependencia en sí).

Además el repositorio de Maven guardar las diferentes versiones de cada proyecto o dependencia, con lo cual podemos actualizar una
dependencia de un proyecto a una versión superior, sin que afecte al resto de nuestros proyectos (que seguirán usando la versión anterior).

8. Creando el proyecto Web


Basándonos en los arquetipos, basta con ejecutar:

$ mvn archetype:create -DgroupId=[Link] -DartifactId=autentiaWeb


-DarchetypeArtifactId=maven-archetype-webapp

Como antes, indicamos el groupId y el artifactId, pero esta vez también indicamos el archetypeArtifactId. En este último atributo, con el valo
maven-archetype-webapp, estamos indicando que queremos usar la plantilla de aplicaciones web.

A parte de los arquetipos que nos proporciona Maven, es interesante saber que podemos creara nuestros propios arquetipos:
[Link]

Echemos un vistazo al [Link] generado:

<project xmlns="[Link] xmlns:xsi="[Link]


xsi:schemaLocation="[Link] [Link]
<modelVersion>4.0.0</modelVersion>
<groupId>[Link]</groupId>
<artifactId>autentiaWeb</artifactId>

4 de 10 20/09/2006 13:46
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML,... [Link]

<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>autentiaWeb</finalName>
</build>
</project>

Destacaremos como en este caso el elemento packaging es igual a war, y la aparición del elemento finalName.

Con finalName estamos indicando el nombre del archivo que se genera al empaquetar, en este caso el nombre del archivo war. En el proyec
anterior no usamos este elemento porque queríamos el comportamiento por defecto: el nombre del archivo se genera como el artifactId +
version. Pero este comportamiento no nos suele interesar en un archivo war, porque sino al desplegar la aplicación abría que poner la versió
de la aplicación en la URL para acceder a ella.

9. Definiendo dependencias
Hasta ahora no hemos escrito ni una sola línea, bueno ya es hora de ponerse a trabajar y hacer algo ;)

Vamos a indicar que el proyecto autentiaNegocio depende del driver de MySQL. Para ello basta con editar el fichero autentiaNegocio/[Link]
añadir:

...
<dependencies>
...
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0.3</version>
<scope>runtime</scope>
</dependency>
</dependencies>
...
</project>

Nótese como se indica scope runtime, es decir este jar sólo se tendrá en cuenta a la hora de ejecutar, pero no se usará para compilar.

Para indicar que autentiaWeb depende de autentiaNegocio, habrá que añadir al fichero autentiaWeb/[Link]:

...
<dependencies>
...
<dependency>
<groupId>[Link]</groupId>
<artifactId>autentiaNegocio</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
...
</project>

Ahora al empaquetar autentiaWeb, veremos que en el directorio WEB-INF/lib se ha añadido el jar de autentiaNegocio, y el jar del driver de
MySQL, ya que este último es dependencia de autentiaNegocio.

10. Un [Link] para controlarlos a todos


En este punto podemos construir cada proyecto con sus dependencias correctas, pero tenemos las restricción de que tenemos que construir
primero autentiaNegocio (hay que hacer install para que el jar se guarde en el repositorio) y luego autentiaWeb, porque si lo hacemos al
contrario no se encontrará la dependencia correctamente.

Imaginemos que tenemos ahora 20 proyectos con dependencias cruzadas, la situación se hace inmanejable. Pero Maven ha pensado en todo

5 de 10 20/09/2006 13:46
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML,... [Link]

Lo que necesitamos es un [Link] que los controle a todos.

Este [Link] se suele colocar en directorio padre de los proyectos (en nuestro caso autentiaNegocio y autentiaWeb), pero yo lo voy a coloca
en el directorio “autentiademoapp”. Este directorio está a la misma altura que autentiaNegocio y autentiaWeb (podríamos decir que son
hermanos). Esto lo hago para poder gestionarlo todo más fácilmente cuando esté trabajando con el Eclipse y el sistema de control de version
(Eclipse sólo puede interactuar con el sistema de control de versiones a través de proyectos o carpetas del workspace).

Este [Link] tendrá el siguiente aspecto:

<project xmlns="[Link] xmlns:xsi="[Link]


xsi:schemaLocation="[Link] [Link]
<modelVersion>4.0.0</modelVersion>
<groupId>[Link]</groupId>
<artifactId>autentiademoapp</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>../autentiaNegocio</module>
<module>../autentiaWeb</module>
</modules>
</project>

Nótese como el valor del elemento packaging es pom. Vease también como dentro del elemento modules se listan todos los módulos que
forman parte de la aplicación.

Al ejecutar cualquier objetivo sobre este [Link], Maven se encarga de ejecutarlo sobre todos los módulos, pero tiene en cuenta las
dependencias entre ellos, de forma que compilará primero la dependencia y luego al dependiente.

Para terminar vamos a modificar el [Link] de autentiaNegocio y autentiaWeb para indicar cual es su proyecto padre. Sí, en Maven podemo
establecer “herencia” entre proyectos, esto nos va a resultar muy útil para definir configuración compartida por los proyectos. Basta con añad
en cada [Link] “hijo”:

<project>
...
<parent>
<groupId>[Link]</groupId>
<artifactId>autentiademoapp</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
...
</project>

11. Configurando los plugins de Maven y heredando la configuración


En ciertas ocasiones nos puede interesar cambiar la manera en que Maven hace las cosas. Para ello podemos redefinir las propiedades usada
por Maven. Por ejemplo vamos ha cambiar las propiedades para compilar nuestros proyectos con la versión 1.5 de Java.

Basta con añadir lo siguiente al fichero autentiademoapp/[Link] (el pom “padre”):

<project>
...
<build>
...
<plugins>
<plugin>
<groupId>[Link]</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
...
</build>
...
</project>

Como este [Link] está definido como padre del resto de proyectos, todos “heredarán” esta configuración.

6 de 10 20/09/2006 13:46
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML,... [Link]

12. Creación de perfiles


Maven nos permite crear diferentes perfiles para la construcción de nuestros proyectos. El perfil nos va a permitir definir propiedades concret
para la construcción del proyecto en distintas situaciones. Por ejemplo, si estamos construyendo el proyecto para un entorno de producción,
pruebas o desarrollo, ...

Vamos a ver un ejemplo en el que crearemos un perfil para construir el proyecto sin información de depuración y con optimización. Basta con
añadir lo siguiente al fichero autentiademoapp/[Link] (el pom “padre”):

<proyect>
...
<profiles>
<profile>
<id>build-release</id>
<properties>
<[Link]>false</[Link]>
<[Link]>true</[Link]>
</properties>
</profile>
</profiles>
...
</proyect>

Para activar un perfil existen varias formas (el perfil puede estar activo siempre, en función de si está definida una variable de entorno,
dependiendo de la versión de JDK que tengamos instalada, con la opción -P, ...). En nuestro caso cuando queramos construir el proyecto con
este perfile ejecutaremos:

$ mvn package -P build-release

Nótese que “build-release” es el identificador del profile, que hemos definido en el [Link].

13. Como publicar una nueva “release” de nuestro proyecto


Dentro de Maven tenemos un plugin que nos gestiona la elaboración de nuevas release.

Antes de hacer nada vamos a configurar el proyecto para decirle con que sistema de control de versiones tiene que trabajar. Editamos
autentiaNegocio/[Link] y añadimos:

<project>
...
<scm>
<connection>scm:svn:svn://servidorautentia/test/trunk/autentiaNegocio</connection>
<developerConnection>scm:svn:svn://serveridorautentia/test/trunk/autentiaNegocio</developerConnecti
</scm>
...
<build>
<plugins>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<password>${[Link]}</password>
<tagBase>svn://servidorautentia/test/tags</tagBase>
</configuration>
</plugin>
</plugins>
...
</build>
...
</project>

Con los elementos connection y developerConnection le estamos diciendo donde está el proyecto dentro del sistema de control de versione
(en nuestro caso el Subversion). Para saber como escribir esta URL consultar [Link]

Con el elemento tagBase definimos donde se tienen que guardar los diferentes tags que hagamos del proyecto, dentro del sistema de contro
de versiones.

Con el elemento password definimos la clave para tiene que usar para conectar con el sistema de control de versiones (el usuario será el que
estemos usando en el sistema, pero se le podría indicar otro con el elemento username). Se ve que, en vez de poner un valor fijo, se está
usando una propiedad.

Para dar valor a la propiedad [Link], podemos pasarla con -D al ejecutar mvn o definirla en el fichero de configuración del usuario.

7 de 10 20/09/2006 13:46
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML,... [Link]

Vamos a usar este último método; para ello añadimos al fichero ~/.m2/[Link]:

<settings>
...
<profiles>
...
<profile>
<id>scmConfig</id>
<activation>
<activeByDefault/>
</activation>
<properties>
<[Link]>miClaveSuperSecreta</[Link]>
</properties>
</profile>
...
</profiles>
</settings>

Se puede ver como estamos definiendo un perfil que está siempre activo, y en este perfil estamos definiendo la propiedad [Link]

Ahora que ya hemos configurado el proyecto para que sepa donde está nuestro repositorio podemos hacer:

$ mvn release:prepare

Este comando nos hace tres preguntas:

What is the release version for "Proyecto de prueba de Autentia: autentiaNegocio"? ([Link]:autentiaNegocio) 1.0: :
Nos pregunta cual es la versión de la release que estamos publicando. Por defecto Maven quita “-SNAPSHOT” a la versión que tenemo
definida en el [Link] en la etiqueta version.

What is SCM release tag or label for "Proyecto de prueba de Autentia: autentiaNegocio"? ([Link]:xx) xx-1.0: :
Nos pregunta como queremos llamar a la etiqueta que se creará en el sistema de control de versiones. Por defecto Maven añade como
prefijo el artifactId del proyecto a lo contestado en la pregunta anterior.

What is the new development version for "Proyecto de prueba de Autentia: autentiaNegocio"? ([Link]:autentiaNegocio
1.1-SNAPSHOT: :
Nos pregunta como queremos que se llame la nueva versión sobre la que seguiremos trabajando. Por defecto Maven incrementa el
último dígito de la versión que tenemos definida en el [Link] en la etiqueta version.

En la mayoría de los casos podemos contestar a estas tres preguntas simplemente pulsando “Intro” y que coja los valores por defecto.

Una vez terminada la ejecución ya se habrá creado la etiqueta en el sistema de control de versiones. Ahora sólo nos queda ejecutar:

$ mvn release:perform

Con esto Maven se baja la versión que acabamos de etiquetar, la compila, le pasa los test, hace un jar con los fuentes, hace un jar con el
javadoc y lo publica todo en el repositorio. También lo publica en el repositorio remoto (en nuestro caso, como no hemos definido un
repositorio remoto nos dará un error). Es decir, la deja lista para que la utilice el resto del equipo.

14. Conclusiones
Como véis, con un mínimo esfuerzo por nuestra parte hemos conseguido mucho. Pero lo mejor de todo no es el haber escrito poco (que ya e
una ganancia), lo mejor es estandarizar este tipo de procesos.

Con Ant todo el mundo se acababa definiendo más o menos las mismas tareas, pero cada vez que se iba a un nuevo proyecto había que
aprender que tareas concretas estaban definidas y como se comportaban estas tareas.

Otra de las grandes ventajas es la gestión de dependencias. Para hacer lo mismo con Ant nos tocaba escribir bastante.

Desde Autentia ([Link] siempre os recomendamos la adopción de estándares, así que esta no podía ser una excepción.

15. Sobre el autor


Alejandro Pérez García, Ingeniero en Informática (especialidad de Ingeniería del Software)

Socio fundador de Autentia (Formación, Consultoría, Desarrollo de sistemas transaccionales)

[Link]

Autentia Real Business Solutions S.L. - “Soporte a Desarrollo”

8 de 10 20/09/2006 13:46
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML,... [Link]

[Link]

This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 2.5 License.

Puedes opinar sobre este tutorial aquí

Recuerda
que el personal de Autentia te regala la mayoría del conocimiento aquí compartido (Ver todos los tutoriales)

¿Nos vas a tener en cuenta cuando necesites consultoría o formación en tu empresa?

¿Vas a ser tan generoso con nosotros como lo tratamos de ser con vosotros?

info@[Link]

Somos pocos, somos buenos, estamos motivados y nos gusta lo que hacemos ......
Autentia = Soporte a Desarrollo & Formación

Autentia S.L. Somos expertos en:


J2EE, Struts, JSF, C++, OOP, UML, UP, Patrones de diseño ..
y muchas otras cosas

Nuevo servicio de notificaciones


Si deseas que te enviemos un correo electrónico cuando introduzcamos nuevos tutoriales, inserta
tu dirección de correo en el siguiente formulario.

Subscribirse a Novedades
e-mail

Otros Tutoriales Recomendados (También ver todos)


Nombre Corto Descripción
Subversion, sistema de control de En esete tutorial aprenderemos a instalar y configurar el nuevo programa de gestión de
versiones, en Debian GNU/Linux versiones Subversion en Debian GNU/Linux

9 de 10 20/09/2006 13:46
Tutoriales en AdictosAlTrabajo: Java, J2EE, Visual C++, Linux, UML,... [Link]

Instalación de Subversion (SVN) en En este tutorial os mostramos cómo instalar y utilizar la herramienta SVN en vuestro entorno
Windows XP XP
Os mostramos como crear y ejecutar scripts Ant (para automatizar tareas en el mundo Java)
Desarrollo Gráfico Scripts Ant
con las herramientas gratuitas Antelope y NetBeans
Subversive, cliente de Subversion En este tutorial os enseñamos a utilizar este plugin de eclipse que permite trabajar con
para Eclipse repositios de Subversion
En el mundo Java, la compilación, verificación e instalación de aplicaciones se ha normalizado
Introducción a ANT
con este potente paquete llamado ANT.

Nota: Los tutoriales mostrados en este Web tienen como objetivo la difusión del conocimiento.

Los contenidos y comentarios de los tutoriales son responsabilidad de sus respectivos autores.

En algún caso se puede hacer referencia a marcas o nombres cuya propiedad y derechos es de sus
respectivos dueños. Si algún afectado desea que incorporemos alguna reseña específica, no tiene
más que solicitarlo.

Si alguien encuentra algún problema con la información publicada en este Web, rogamos que
informe al administrador rcanales@[Link] para su resolución.

Patrocinados por [Link] .... Hosting en Castellano con soporte Java/J2EE

[Link] Opimizado 800X600

10 de 10 20/09/2006 13:46

También podría gustarte