Maven Build & Deployment Part II

Slides:



Advertisements
Presentaciones similares
Integración Continua AltNetHispano Carlos Peix
Advertisements

Subversion (SVN) Sistema de Control de Versiones Sucesor de CVS
Instalación de Subversion Para instalar Subversion en Ubuntu, abrimos una terminal.
SCM: Tutorial Assembla y Tortois SVN
Todo el Software necesario puede ser conseguido por separado. Para facilitar la puesta al punto del ambiente, nosotros utilizaremos una herramienta particular.
Sistemas de Control de Versiones
Entorno de trabajo con apache ant
Opciones bajo el comando Tools del menú principal
Aplicación informática. formando parte de una red. pone sus recursos a disposición de las demás computadoras(clientes) de la red. Maneja información.
Carlos Rojas Kramer Universidad Cristóbal Colón
ASEGURANDO LA CALIDAD DEL CODIGO
Open Journal System Roles y funciones.
Control de versiones con Subversion
Proyecto de Software Configuration Management
The Poker Game Trabajo en equipo con Google Code.
Agenda Problemas Comunes
Uso del subversion desde el Eclipse y con google code 1.
TUTORIAL DE SUBVERSION
1 Víctor Aravena Díaz. 2 Objetivo Conocer sobre el uso de la gestión de la configuración. Utilizar SVN desde eclipse. SVN.
Introducción a Maven 2.0 TELEFÓNICA I+D Carlos Gómez Fecha: 25/03/2009
Soporte GO-LIVE Crear y seguir tareas, escenarios, requerimientos Asignar trabajo al equipo Uso de workflow para hacer cumplir el proceso.
INSTALACIÓN Y MANTENIMIENTO SO ADMINISTRACIÓN SO LINUX.
Subversion (SVN) Sistema de Control de Versiones Sucesor de CVS.
Especialista en Business Intelligence Integration Services SSIS (Sesión 6) Microsoft SQL Server 2008 R2 (2013) Suscribase a o escríbanos.
Control de versiones usando PowerBuilder y Subversion
Evaluación de Productos
Servidores de nombres de dominio (DNS):
Curso Administrativo OTEC Unidad II : Configuración de Cursos Curso creado por : Libro de Clases Electrónico (LCE) ACTUALIZADO
Consejería de Educación, Universidades, Cultura y Deportes Consejería de Educación, Universidades, Cultura y Deportes FEDER - FSE CONSOLA DE SERVICIOS.
Raúl García Cortés ( Noviembre de 2013.
Uso de TortoiseSVN Gerencia SCM.
Trabajo Visual SVN Server
© Copyright GlobalLogic Connect. Collaborate. Innovate.
Propuesta de una metodología para el desarrollo de proyectos informáticos empleando la herramienta para el diseño automatizado GeneXus Autor: Dipl.-Ing.
Integrantes: Arce Diego Chiguano Cristian Freire Santiago Herrera Ernesto Padilla Lorena Paucar Juan Sosa Daniela Tarapués Damaris Uvidia Daisy Vargas.
Maven Build & Deployment Part I Carlos Alberto López Carlos Alberto López
POP3 UCLV Mapas Conceptuales para la enseñanza de Redes de Computadoras.
UNIVERSIDAD TECNOLOGICA DEL PERU
Fundamentos de Ingeniería de Software Facultad de Ingenieria Universidad Distrital Francisco José de Caldas ESPECIFICACIÓN Y MANEJO DE LOS REQUERIMIENTOS.
Visual SUBVERSION.
Planeación con Planning Tool y DotProject Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes Rubby Casallas, Andrés Yie.
VI. CONFIGURACION DE SOFTWARE.. La configuración de software es un conjunto de datos que determina el valor de algunas variables de un programa o de un.
Gestión de la Configuración
Administración de Software Administración de Software / Casos Reales Pág 1 La seguridad físca PROGRAMACION CASOS DE LA VIDA REAL.
Concurrent Versions System Daniel Vergara C. Rodrigo Yañez Q.
Ximena Romano – Doris Correa
LSQA + Equipo Proyecto  Definir Proceso: A nivel de la Organización A nivel de Proyecto Actividades SQA: – Asegurar que el Producto cumple con los Requisitos.
Aplicación y uso de la herramienta
Al igual que un equipo no puede trabajar sin un sistema operativo, una red de equipos no puede funcionar sin un sistema operativo de red. Si no se dispone.
UNIVERSIDAD LATINA BASES DE DATOS ADMINISTRACIÓN.
HIPI – USCO Juan David Cerquera Ingeniería Electrónica.
El rol de SQA en PIS.
Maven.
SCM Cecilia Cedrés Braulio Zitto. Agenda Introducion Gestion de la configuracion SCMP Informe de estado 2 Julio de 2015.
Proceso de Gestión de Configuración
Roles de Open UP.
Integrantes: Pinto Valiente Jonathan Michelena Polo Diego Rumiche Inga Erika Schuler Zamora Jessy.
Luis Villalta Márquez. Servidores de nombres de dominio (DNS)
Las variables de entorno forman un conjunto de valores dinámicos que normalmente afectan el comportamiento de los procesos en una computadora.
Una guía para comenzar a utilizar Subversion
Ingeniería de Software Andrés Salinas Bendeck
SCOPE MX Móvil.. Herramientas de SCOPEmx móvil. La versión 2.0 de esta aplicación cuenta con distintas herramientas importantes para su buen desempeño,
Sistemas de Control de Versiones
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
Bienvenidos Taller Técnico Capataz 2011 Córdoba – Agosto 2011.
Guía rápida de instalación de Sakai Dr. David Roldán Martínez ASIC, Universidad Politécnica de Valencia.
Control de Versiones Utilizando SVN. ELO329 - Diseño y Programación Orientado a Objetos 2 Control de Versiones ”Se llama control de versiones a la gestión.
Proyecto ROOTVE V2: Control de versiones con Subversion Grupo de Investigación y Desarrollo en Seguridad de la Información - GIDSI.
Primer Taller de desarrollo con Software Libre Posadas - Misiones José Luís Di Biase Héctor Daniel Sanchez
Transcripción de la presentación:

Maven Build & Deployment Part II Carlos Alberto López newalopez@gmail.com 1 1

Agenda Recapitulando Part I Maven – Revisión POM Proyecto Ejemplo Maven – Archiva Maven – Deploy Maven Release Plugin prepare prepare-with-pom perform [SCM tag] update Versions Conclusiones 2

Agenda Recapitulando Part I Maven – Revisión POM Proyecto Ejemplo Maven – Archiva Maven – Deploy Maven Release Plugin prepare prepare-with-pom perform [SCM tag] update Versions Conclusiones 3

clean, compile, test, install, deploy. Recapitulando Part I clean, compile, test, install, deploy. 4

Agenda Recapitulando Part I Maven – Revisión POM Proyecto Ejemplo Maven – Archiva Maven – Deploy Maven Release Plugin prepare prepare-with-pom perform [SCM tag] update Versions Conclusiones 5

Agenda Recapitulando Part I Maven – Revisión POM Proyecto Ejemplo Maven – Archiva Maven – Deploy Ciclo de Vida – Build / Install / Deploy Maven Release Plugin prepare prepare-with-pom perform [SCM tag] update Versions Conclusiones 6

Maven - . Repositorio local: Repositorio remotos: <USER_HOME>/.m2/repository Repositorio remotos: http://repo.maven.apache.org http://search.maven.org Maven guarda todas las dependencias y proyectos en un único repositorio. Este repositorio está situado en <USER_HOME>/.m2/repository También existe un repositorio remoto desde el cual se descargan los diferentes jars según los vamos necesitando. Maven buscará en los repositorios de Internet para poder conseguir las dependencias que necesita para la creación de un proyecto. Esto es una desventaja para:   el ancho de banda de la red   acceso limitado por bloqueo de sitios por proxy   Dependencias propias de la empresa que no existen en ningún otro repositorio Esto se puede solucionar creando un repositorio compartido para que todos los desarrolladores se conecten a un mismo repositorio y este sirva como proxy para los repositorios externos. 7

Maven - . Es un software open source desarrollado por Apache para la gestión de repositorios. Permitiendo: Administrar artefactos. Seguridad de acceso (roles y perfiles). Conexión proxy a otros repositorios. Indexación, búsqueda. Reportes de uso (estadísticas) Apache-Archiva es un programa de código abierto para el manejo de repositorios desarrollado por Apache Software Foundation. Forma parte de los llamados "Proyectos Top Level" de la Fundación Apache. Este software ofrece funciones para la mantención (proxy de repositorios remotos, seguridad de acceso, almacenamiento de artefactos, suministro, revisión, indexación, estadísticas de uso, escaneo) de repositorios, siendo capaz de interactuar con herramientas como Maven, Continuum y Continuum Ant, destinadas a producir una aplicación lista para usar. 8

Maven - . Uso de artefactos propios 9 - El artefacto es propio. - Maneja la versión - Genera el pom para ser usado como dependencia 9

Maven - . Uso conexiones proxy para repositorios remotos 10 Archiva descarga las dependencias y las almacena. Esto permite fácil administracion de dependencias, ya que se centralizan en nuestro repositorio. 10

Agenda Recapitulando Part I Maven – Revisión POM Proyecto Ejemplo Maven – Archiva Maven – Deploy Maven Release Plugin prepare prepare-with-pom perform [SCM tag] update Versions Conclusiones 11

Maven - Deploy mvn deploy: Invoca la fase deploy Es el proceso de distribuir el artifact en un repositorio remoto. Copia el paquete final a un repositorio remoto para compartir con otros programadores o proyectos. -Este comando tiene a confundirse con mvn install (publica en el repositorio local). Este comando requiere configuración extra en el pom (distributionManagement) 12

Maven - Deploy Modificación al POM [...] 13 <distributionManagement> <repository> <id>archiva.internal</id> <name>Internal Release Repository</name> <url>http://beta:8081/archiva/repository/internal/</url> </repository> <snapshotRepository> <id>archiva.snapshots</id> <name>Internal Snapshot Repository</name> <url>http://beta:8081/archiva/repository/snapshots/</url> </snapshotRepository> </distributionManagement> You can also deploy to the Archiva server using traditional means such as SCP, FTP, etc. 13

Maven - Deploy Agregar servidores 14 [...] <settings> ... <servers> <server> <id>archiva.internal</id> <username>{archiva-deployment-user}</username> <password>{archiva-deployment-pwd}</password> </server> <id>archiva.snapshots</id> </servers> </settings> Esta configuración se agrega al setting.xml de maven 14

Revision POM Ej Archiva (Rep. Local) Deploy (Rep. Local) 15

Agenda Recapitulando Part I Maven – Revisión POM Proyecto Ejemplo Maven – Archiva Maven – Deploy Ciclo de Vida – Build / Install / Deploy Maven Release Plugin prepare prepare-with-pom perform [SCM tag] update Versions Conclusiones 16

Release Es un plugin que tiene como objetivo, ahorrar tiempo en tareas repetitivas, así como asegurarnos de usar las mejores practicas para la entrega de nuestros proyectos. Sus pasos principales son: prepare y perform. 17

Release Preparando el proyecto. <project> ... <scm> <developerConnection>scm:svn:https://host/repos/myapp/trunk/mycomponent/</developerConnection> </scm> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.4.2</version> </plugin> </plugins> </build> </project> 18

Release release:clean release:prepare Por lo general se ejecuta despues de un release:perform exitoso, se encarga de limpiar la copia de trabajo y no afecta a los pasos previos. release:prepare Se asegura que el POM está listo para un release y prepara el SCM para eventualmente grabar una versión TAG del release. 19

… Release release:rollback release:perform Deshace los cambios realizados por un release, para esto es necesario que no se haya limpiado (release:clean) el proyecto, generalmente se usa cuando hay un error. release:perform Ejecuta el Release en nuestro SCM, según la especificación creada en nuestro release:prepare. 20

… Release release:update-versions Actualiza la versión del proyecto en el POM, esto hace la operación normal de release:prepare pero sin crear un TAG en el SCM. 21

Prepare release:prepare: - Revisa que no haya cambios sin subir al respositorio de fuentes - Revisa que no haya dependencias SNAPSHOT - Solicita la versión de x-SNAPSHOT [ prompt ] - Corre casos de prueba - Commit del POM a SCM - TAG de Version al SCM para el Release - Solicita versión de SNAPSHOT para continuar el desarrollo - Commit de POM nuevo. Ejecutar: mvn release:prepare 22

Perform mvn release:perform Hace un checkout del SCM, con el TAG especificado, creado por la meta release:prepare. Ejecuta las metas predeterminadas de maven para un release del proyecto: deploy, site-deploy 23

Para aclarar conceptos sobre cómo se trabaja a la hora de un release se muestra la siguiente imagen: release:perform release:prepare Repositorio Subversión (SVN) Repositorio Maven (Archiva) Maven Trunk Branches Tag / versión 1.0 / versión 1.x /net /org /com /bytesw /proyecto

Rollback mvn release:rollback - Si no ha ejecutado release:clean, aún quedarán los archivos de backup, por lo mismo puede ejecutarse. Esto regresa los POM a su estado pre- release. El branch o tag generado para el release también es eliminado. [ Dependiendo de la version del plugin de maven, Jira Issue codehaus: MRELEASE-229 ] 25

Update-versions Una forma fácil de cambiar de versión nuestros proyectos, sobre todo cuando estos contienen multiples módulos: mvn release:update-versions 26

Conclusiones 27

What's Next? Integración Continua Jenkins ? Bamboo ? Continuum ? 28

Agradecimiento Marvin Díaz Oswaldo López Virgil Jones Eder Santos Gilberto Orozco 29

Stackoverflow: newalopez Gracias! newalopez@gmail.com Stackoverflow: newalopez