Mostrando las entradas con la etiqueta mvn. Mostrar todas las entradas
Mostrando las entradas con la etiqueta mvn. Mostrar todas las entradas

miércoles, 18 de febrero de 2009

Maven 2.0.10 disponible

Ya esta disponible la versión 2.0.10 de Maven, la popular herramienta de administración de proyectos de Apache.

Para descargarlo usen este enlace, y para mas información usar este.

viernes, 19 de septiembre de 2008

Maven 2.1.0-M1 disponible

Hoy fue liberado al publico la versión 2.1.0-M1 de Apache Maven. Esta versión corrige unos 70 defectos por lo cual se recomienda su uso de forma inmediata. Para bajar la versión denle clic a este enlace. Para ver la lista de correcciones denle clic a este enlace.

jueves, 24 de julio de 2008

Maven 2.0.10 RC en certificacion

Ya arranco la certificación de la versión 2.0.10 de Maven. Para ver detalles de los cambios de esta versión den clic a este enlace.

viernes, 16 de mayo de 2008

M2Eclipse 0.9.4 incluye editor de pom.xml

La version mas reciente (0.9.4) del plugin de Maven 2 para Eclipse - M2Eclipse incluye un editor para el pom.xml el cual permite completarlo basado en el schema. Otra caracteristica interesante es que permite completar los artefactos de las dependencias basado en las versiones disponibles. Si quieren ver mas detalles denle clic aqui.

miércoles, 9 de abril de 2008

Maven 2.0.9

Ya esta a punto de salir la versión 2.0.9 de Maven, la popular herramienta de administración de proyectos de Apache.

Si quieren descargarlo y probarlo usen este enlace.

Para ver las mejoras usen este.

miércoles, 30 de enero de 2008

Q4E actualizado

Acaba de salir la versión 0.4.0 del plugin Q4E de Maven para Eclipse. Para ver mas detalles de los cambios den clic aquí.

Powered by ScribeFire.

viernes, 30 de noviembre de 2007

Maven 2.0.8 disponible

Ya se libero la versión 2.0.8 de maven 2, la popular herramienta para administración de proyectos de Apache. La lista de mejoras las pueden ver aqui.

mvn -version
Maven version: 2.0.8
Java version: 1.4.2_14
OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"


Powered by ScribeFire.

viernes, 16 de noviembre de 2007

Continuum 1.1 por fin es FINAL

Después de 2 versiones alfa y 4 beta por fin esta disponible para hacer testing la version final 1.1 de Continuum, la herramienta de integración continua de Apache. El release final estará disponible en pocos días. Esta versión incluye varias mejoras respecto al beta-4 e introduce una herramienta nueva para hacer backups de la base de datos de continuum (no la de usuarios).

La lista de mejoras de esta versión la pueden ver aquí.

Los instaladores están en estos links:

- Runtime: Aplicación standalone

- Webapp: WAR para instalar en servlet container

- Data cli: Cliente para migrar la base de datos

- xmlrpc util: Herramienta xmlrpc para backups



Powered by ScribeFire.

sábado, 27 de octubre de 2007

Continuum 1.1-beta-4 disponible

La versión 1.1 de Continuum ya llega al release beta-4, falta poco para tener la versión oficial disponible.

Pueden bajarlo en estos links


En este link tienen la guia de instalación, la cual incluye las versiones ejecutable, tomcat, jboss, geonimo y glassfish


- < Continuum 1.1-beta-4 started! >
- ---------------------------------
- \ ^__^
- \ (oo)\_______
- (__)\ )\/\
- ||----w |
- || ||
-
-


Powered by ScribeFire.

jueves, 20 de septiembre de 2007

Continuum 1.1-beta-3 disponible

Ya esta por salir el release 1.1-beta-3 de Continuum, la herramienta de integración continua de Apache, . Si quieren probarla la pueden bajar de aquí: standalone, webapp. La lista de mejoras las pueden ver aquí.



- < Continuum 1.1-beta-3 started! >
- ---------------------------------
- \ ^__^
- \ (oo)\_______
- (__)\ )\/\
- ||----w |
- || ||
-
-


Powered by ScribeFire.

sábado, 18 de agosto de 2007

Continuum 1.1-beta-2 disponible

Ya esta disponible la mas reciente versión de Continuum, la herramienta de integración continua de Apache. Esta versión corrige una gran cantidad de bugs asi como una herramienta para administrar la base de datos. Lo pueden bajar desde aqui

- Continuum 1.1-beta-2 started!
- ---------------------------------
- \ ^__^
- \ (oo)\_______
- (__)\ )\/\
- ||----w |
- || ||
-
-


Powered by ScribeFire.

jueves, 21 de junio de 2007

Maven 2.0.7 disponible

Apache acaba de liberar un nuevo release de la herramienta Maven 2, la lista de mejoras las pueden ver aquí.

mvn -version
Maven version: 2.0.7
Java version: 1.4.2_14
OS name: "windows xp" version: "5.1" arch: "x86"



Powered by ScribeFire.

sábado, 5 de mayo de 2007

Integración continua usando Continuum

Continuum es un producto de la fundación Apache para integración continua. A diferencia de Cruise Control, Continuum utiliza una interfaz web para realizar todas sus operaciones. El producto esta basado en el popular scheduler Quartz y permite integrar proyectos de maven 1, Maven 2, Ant y scripts. Lo bueno de Continuum es lo fácil de instalar y de administrar. Prácticamente se tiene continuum corriendo en menos de 5 minutos.

La versión estable es la 1.0.3, la cual corre bajo un jetty autocontenido que por defecto corre en el puerto 8080. La instalación es básicamente descomprimir el instalador en un directorio cualquiera. En la carpeta bin existen scripts para ejecutarlo bajo diferente plataformas, solo basta ubicar la plataforma y ejecutar el comando ./run.sh start o si es windows .\run.bat. Cuando se ejecuta este comando por primera vez, Continuum expande en la carpeta apps la aplicación con sus valores por defecto así como crea la instancia de base de datos que usa internamente. Por defecto la base de datos es Apache Derby pero puede ser cambiada por otra ( Continuum trae una definición para postgreSQL y he leído de personas que lo han configurado con MySQL ).

Para probar la instalación solo falta ejecutar http://localhost:8080/continuum/servlet/continuum. La primera vez que se ejecuta se llega a una pagina para registrar el usuario administrador. Despues se puede hacer login con ese usuario y comenzar a usar la aplicación. La aplicación permite la definición de usuarios basados en perfiles así como también permite de forma opcional usuarios guest.

Si se quiere cambiar la configuración por defecto se debe editar el archivo apps/conf/application.xml. Alli se puede cambiar el puerto de ejecución, la información del servidor smtp para notificaciones, etc.

Los logs de la aplicacion se pueden ver bajo apps/logs.

Para registrar un proyecto solo basta con seleccionar el tipo de proyecto desde el menu y cargar el archivo de configuración del proyecto. Para Maven 1 es el project.xml, Maven 2 el pom.xml, ant el build.xml, etc. Lo único requerido es que el archivo de configuración tenga definido los parametros de scm para conectarse con el repositorio de control de versiones (CVS, SVN, etc). Una vez que se carga el archivo de configuración Continuum se encarga de registrarlo en la bd usando los valores definidos en el archivo y baja del repositorio una copia local sobre la cual va a trabajar. Después Continuum se encargara de revisar el repositorio scm por cambios (por defecto cada hora), si se encuentran cambios presentes estos se bajan a la copia local y se ejecutan todos los comandos definidos durante el proceso de setup del proyecto. Para Maven 2 seria clean install. Si se presenta un error durante esta ejecución se enviaran notificaciones a los usuarios responsables. Estas notificaciones pueden ser por email o por IM. Adicionalmente Continuum mantienen un histórico de todos los builds que ha realizado o intentado realizar sobre un proyecto.

Si se quiere hacer seguimiento de este proyecto se pueden registrar en Nabble y asi reciben feedback de la comunidad.

En este momento se encuentra disponible para pruebas la version 1.1 alpha. Esta versión contiene una gran cantidad de mejoras con respecto a la 1.0.3. No he podido revisarla en profundidad pero si noté que cambio la interfaz web, esta fue reestructurada y ahora como que tiene mas opciones. El otro cambio interesante es que ahora se distribuye tambien como un war por lo que se puede instalar en cualquier servlet container de su preferencia.

Una nota interesante, si se esta trabajando bajo windows y se tiene Zone Alarm instalado se puede obtener un error de clase no definida "Files Zone" al tratar de arrancar Continuum. El probema se debe a que Zone Alarm modifica el PATH de la máquina y agrega un directorio definido entre doble comillas. Solo deben quitar esas dobles comillas, abrir una nueva ventana DOS y volver a ejecutar .\start.bat.


Powered by ScribeFire.


domingo, 8 de abril de 2007

Definición de dependencias en Maven

Una forma fácil para definir dependencias en Maven 2 es utilizar el site http://mvnrepository.com. Alíi podemos encontrar la definición de las dependencias así como en muchos casos el jar asociado. Es muy útil porque permite estandarizar la definición de dependencias no publicas como las de oracle, sun, ibm, etc.

viernes, 6 de abril de 2007

Construyendo proyectos con Maven 2

Maven es una excelente herramienta que nos permite simplificar el proceso de construcción de un proyecto (jar, ear, ejb, war, etc). La herramienta es tan poderosa que se ha convertido en una de mis favoritas, y la uso prácticamente todos los días. Alguna de las características que la han convertido en indispensable son:

  1. Se puede construir, ejecutar tests y empaquetar un proyecto con un solo comando.
  2. Permite administrar las dependencias de un proyecto de forma eficiente
  3. Permite unificar la estructura de los proyectos
  4. Permite generar una pagina web del proyecto con información general y con reportes variados relacionados al proyecto.
  5. Define una guia de buenas practicas de desarrollo

Quizás lo mas interesante es el primer punto ya que es lo que uno hace en el día a día. Por ejemplo, para generar un war el comando seria

$ mvn clean war:war

La definición del proyecto se hace en el archivo pom.xml y debe estar ubicado en el directorio raíz del proyecto. Allí se define información general del proyecto así como todas las dependencias del mismo.

La instalación es bien sencilla:

  1. Bajar maven 2.0.x del site de Apache
  2. Unzip maven en algun directorio. Ejm: /home/usuario/maven
  3. Agregar al PATH el dir bin de maven.

  4. export PATH=$PATH:/home/usuario/maven/bin:

  5. Agregar la variable MAVEN_OPTS al ambiente. Esta variable define parametros del JVM para maven.

  6. $ export MAVEN_OPTS=-Xmx256M

  7. Crear el archivo settings.xml en el directorio {home}/.m2 del usuario. Este archivo contiene variables de configuración globales de MAVEN. A continuación se tiene un ejemplo del archivo

  8. <settings>
    <localRepository>/home/usuario/m2_local_repo</localRepository>
    <proxies />
    <servers />
    <mirrors />
    <profiles />
    </settings>

  9. La entrada localRepository debe apuntar a donde estar el repositorio local de maven. Es aquí donde maven almacena todas las dependencias de nuestros proyectos.
  10. Probar la instalación

  11. $ mvn --version
    Maven version: 2.0.6

  12. Ahora solo falta crear el pom.xml de un proyecto y listo. Supongamos que tenemos un proyecto A que debe generar un war. El pom.xml puede ser como:


  13. <?xml version="1.0" encoding="UTF-8"?>
    <project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.test.maven</groupId>
    <artifactId>proyectoA</artifactId>
    <packaging>war</packaging>
    <name>Proyecto A</name>
    <version>0.0.1</version>
    <description>Test maven</description>
    <dependencies>
    <dependency>
    <groupId>org.apache.geronimo.specs</groupId>
    <artifactId>geronimo-j2ee_1.4_spec</artifactId>
    <version>1.0</version>
    <scope>provided</scope>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring</artifactId>
    <version>2.0.3</version>
    </dependency>
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.0.5</version>
    </dependency>
    <dependency>
    <groupId>xerces</groupId>
    <artifactId>xercesImpl</artifactId>
    <version>2.8.1</version>
    </dependency>
    <dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.2.1</version>
    </dependency>
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
    </dependency>
    </dependencies>
    </project>

  14. Fijense que se definieron varias dependencias como spring, mysql connectors, etc. Estas dependencias en principio no existen en nuestro proyecto pero al tratar de compilar con maven este se conectara a internet al repositorio global de maven y bajara las versiones de las dependencias que se especifican. El siguiente comando va a bajar las dependencias no presentes, compilar el proyecto, ejecutar cualquier test definido, generar el war y copiar el war en el repositorio local. El nombre del war será proyectoA-0.0.1.war y sera copiado dentro del repositorio local en la ruta definida por el groupId (org.test.maven)


  15. $ mvn clean install
    [INFO] Scanning for projects...
    [INFO] ----------------------------------------------------------------------------
    [INFO] Building Proyecto A
    [INFO] task-segment: [clean, install]
    [INFO] ----------------------------------------------------------------------------
    [INFO] [clean:clean]
    [INFO] Deleting directory /home/usuario/proyector/proyectoA/target
    [INFO] Deleting directory /home/usuario/proyector/proyectoA/target/classes
    [INFO] Deleting directory /home/usuario/proyector/proyectoA/target/test-classes
    [INFO] [resources:resources]
    [INFO] Using default encoding to copy filtered resources.
    Downloading: http://repo1.maven.org/maven2/commons-dbcp/commons-dbcp/1.2.1/commons-dbcp-1.2.1.pom
    6K downloaded
    Downloading: http://repo1.maven.org/maven2/commons-dbcp/commons-dbcp/1.2.1/commons-dbcp-1.2.1.jar
    105K downloaded
    [INFO] [compiler:compile]
    Compiling 8 source files to /home/usuario/proyector/proyectoA/target/target/classes
    [INFO] [resources:testResources]
    [INFO] Using default encoding to copy filtered resources.
    [INFO] [compiler:testCompile]
    Compiling 1 source file to /home/usuario/proyector/proyectoA/target/target/test-classes
    [INFO] [surefire:test]
    [INFO] Surefire report directory: /home/usuario/proyector/proyectoA/target/target/surefire-reports

    -------------------------------------------------------
    T E S T S
    -------------------------------------------------------
    Running test.TestUserDao
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.797 sec

    Results :
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

    [INFO] [war:war]
    [INFO] Exploding webapp...
    [INFO] Assembling webapp ProyectoA in /home/usuario/proyector/proyectoA/target/ProyectoA-0.0.1
    [INFO] Copy webapp webResources to /home/usuario/proyector/proyectoA/target/ProyectoA-0.0.1
    [INFO] Generating war /home/usuario/proyector/proyectoA/target/ProyectoA-0.0.1.war
    [INFO] Building war: /home/usuario/proyector/proyectoA/target/ProyectoA-0.0.1.war
    [INFO] [install:install]
    [INFO] Installing /home/usuario/proyector/proyectoA/target/ProyectoA-0.0.1.war to /home/usuario/m2_local_repo/org/test/maven/ProyectoA/0.0.1/ProeyctoA-0.0.1
    war
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 25 seconds
    [INFO] Finished at: Fri Apr 06 18:37:46 EDT 2007
    [INFO] Final Memory: 5M/15M
    [INFO] ------------------------------------------------------------------------

Si se fijan bien, commons-dbcp no estaba disponible y fue bajado de internet antes de realizar la compilación, también se encontró un test que se ejecutó y funcionó correctamente y al final se generó el war y se publico en el repo local.

Como ven, es muy sencillo instalar, configurar y ejecutar maven. Después que uno se acostumbra a usarlo es difícil volver a ant o a otras herramientas similares. Para los que usan netbeans o eclipse existen plugins que permiten usar maven desde el IDE.