Maven Build & Deployment Part I Carlos Alberto López Carlos Alberto López

Slides:



Advertisements
Presentaciones similares
JEE (EJB3) Configuración Ambiente de Desarrollo
Advertisements

Sun Microsystems desarrolló, en 1991, el lenguaje de programación orientado a objetos que se conoce como Java. La intención de Sun era crear un lenguaje.
Características Generales y Entornos de Desarrollo
Metodologías ágiles.
Todo el Software necesario puede ser conseguido por separado. Para facilitar la puesta al punto del ambiente, nosotros utilizaremos una herramienta particular.
Programación Interactiva Introducción a Java
Aplicaciones J2EE.
Arquitectura Web en Aplicaciones Empresariales Java/J2EE Daniel Fernández Lanvin Entorno de trabajo.
Entorno de trabajo con apache ant
Opciones bajo el comando Tools del menú principal
Modelando aplicaciones
Bienvenido a Marangatu'i, Módulo del Contribuyente de la SET!
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
INSTITUTO TECNOLOGICO DE MINATITLAN
Arquitectura CLARO-TECNOTREE
"java del lado del servidor" Servlet y JSP Java Server Pages.
SISTEMA DE NACIMIENTOS MANUAL DEL USUARIO. El objetivo del presente manual es servir de guía al usuario final para interactuar con el Sistema, permitiéndole.
Proyecto de Ingeniería de Software 2008
Introducción a Maven 2.0 TELEFÓNICA I+D Carlos Gómez Fecha: 25/03/2009
Java 2 Platform Enterprise Edition
Presentación del estado del arte
Administración de Procesos de Pruebas
Herramientas QA Morax.
Por: Santiago Toro Rendón Raquel Sepúlveda.  El SO se instala en una sección definida de la unidad de disco duro, denominada partición de disco. Existen.
Maven Build & Deployment Part II
Introducción a TDD. Enfoque de la Charla Presentar un ejemplo de principio a fin de una funcionalidad de un proyecto. Sin profundizar en las herramientas.
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
 El primer navegador Web incluía un lenguaje de estilo interno que utilizaba dicho navegador para mostrar las páginas HTML.  Sin embargo estos primeros.
Programación e Ingeniería de Software III
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
EmpWeb – ABCD plugin Curso de capacitación para transferencia tecnológica Sección para la instalación del entorno de desarrollo de Empweb. Uso del IDE,
Generación de páginas en forma dinámica utilizando Apache Tomcat®. Expositores: Luis Ehlen Luis Báez Grupo 8 Programación de Sistemas Profesor: Agustín.
Software Testing Juan Carlos Olivares Rojas MSN:
Mock objects Rosemary Torrico Bascopé. Introducción Las Pruebas de unidad han sido aceptadas como la “mejor práctica” para el desarrollo de software.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
FUNDAMENTOS DE PROGRAMACION
Introducción al Lenguaje. ¿Qué es PHP? O Es un lenguaje de programación que es interpretado por un servidor web. O El lenguaje es genérico. PHP está orientado.
Guía fácil del RSS.
Programación Java y Desarrollo de Aplicaciones Modulo 3 Lenguaje de programación Java Software utilizado.
Maven.
ASIGNACIÓN DE ROLES.
Desarrollo DE apps móviles
Algoritmos y Programación III
Roles de Open UP.
SHUTTENBORG ACCESS CONOCE LOS PROGRAMAS. Cortés Gamboa Lizzeth
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Introducción al proceso de verificación y validación.
TALLER DISEÑO WEB José Joo Villablanca DG & otras yerbas Instituto Profesional Santo Tomás / Diseño Publicitario Multimedial.
Análisis de las principales vulnerabilidades de un sistema informático. Gabriel Montañés León.
Guadalupe Andrade Mociño.  Significa Modelo Vista Controlador  Es un patrón de diseño  Esta compuesto por tres grandes capas: modelo, vista y controlador.
Sustentante: Francis Ariel Jiménez Zapata Matricula: Grupo: 2 Profesora: Jose Doñe Asignatura: Sistema Operativo 2.
Desarrollo DE apps móviles
ADN2 Diseño ágil de noticias Historia de un trabajo profesional.
Estructurar tus ideas para hacerlas realidad
REVISION Y AUDITORIA.
Ingeniería en Informática F UNDAMENTOS DE C OMPUTACIÓN B ACHILLERATO EN I NGENIERÍA I NFORMÁTICA L IC. C ARLOS H. G UTIÉRREZ L EÓN.
ESTACIONES DE TRABAJO..
Proceso de desarrollo de Software
Integrantes Miguel Betancourt Alexis Tacuri.  Activiti es una plataforma para la formación de flujos de trabajo y procesos empresariales dentro del.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
INVESTIGACION DE TEMARIO JOSE LUIS VEGA MERINO.  1.2. Requerimientos de instalación.  Microsoft Windows 7 Professional y Microsoft Windows 7 Ultimate.
Objetivos de la prueba Los objetivos principales de realizar una prueba son: Detectar un error. Tener un buen caso de prueba, es decir que tenga más probabilidad.
Instalación del Eclipse para usar en Python Por Cristian Suárez Sistemas Operativos 1 Año 2010.
Guía rápida de instalación de Sakai Dr. David Roldán Martínez ASIC, Universidad Politécnica de Valencia.
Aplicación Móvil - Eclipse SDK. Primero debemos comprobar si disponemos en nuestro ordenador del JDK, es decir, el software necesario para escribir código.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Patricia López & Julio Medina Computadores y Tiempo Real Santander, 2013 G80 - Advanced Computation 1 Generación de Código con BOUML.
Desarrollo y servicios web Luisa Fernanda Rincón Pérez
Entregables del Proyecto
ALUMNO ALUMNO: DIEGO URES LEGAJO LEGAJO: La prueba unitaria es la herramienta para la Calidad Presentación Trabajo Final de Grado.
Transcripción de la presentación:

Maven Build & Deployment Part I Carlos Alberto López Carlos Alberto López

Agenda Introducción Objetivos Lo que no es Maven Características Descarga e instalación Build Project [clean / install] Unit Test Phases Top plugins Estructura de proyectos El POM Build & Package Proyecto de ejemplo

Introducción Antes de maven (…2001) Que es maven? Convención sobre configuración

Objetivos Construcción de software mas sencilla. Maven no elimina la necesidad de saber cuáles son los mecanismos que hay debajo, maven proporciona un escudo que esconde los detalles. Sistema de construcción uniforme. Maven permite generar el build de un proyecto utilizando su Modelo de Objetos de Proyecto (POM) y un conjunto de plugins que son compartidos por todos los proyectos. Información de calidad sobre los proyectos. Maven proporciona información útil del proyecto que es en parte extraída del POM y en parte generada de los fuentes del proyecto. Mejores prácticas de desarrollo. Maven tiene como objetivo recoger las principales prácticas del buen desarrollo y facilita guiar un proyecto en esa dirección. Migración transparente a nuevas características. Maven proporciona una forma fácil de obtener las actualizaciones de manera que puedan aprovecharse todas las ventajas de los cambios que se hayan hecho.

Lo que no es Maven Lo que algunos piensan sobre Maven: Maven es una herramienta de documentación. Maven es una extensión de Ant que te permite descargar dependencias. Maven es un conjunto de scriptlets Ant reutilizables. Maven hace todo esto, pero no son las únicas características que tiene y sus objetivos son en verdad diferentes. Maven nos empuja hacia las mejoras practicas aunque algunos proyectos podrían no ajustarse con estos ideales. Aún así Maven esta diseñado para ser flexible a las necesidades de diferentes proyectos.

Características Convención sobre Configuración Maven se encarga de tomar por defecto una serie de decisiones a priori (estructura del proyecto, ubicación donde se van a encontrar los fuentes o ficheros de recurso, compilador a emplear, etc.) Esto facilita el desarrollo de software y hace más fácil a otros desarrolladores incorporarse a los proyectos. Reusabilidad de un Proyecto Maven facilita un repositorio central desde donde podemos bajar los distintos proyectos, bibliotecas o plugins que se requieran para construir un proyecto. Es aquí donde radica el concepto de reusabilidad, ya que solo se necesita incluir dicho repositorio y coger de el lo que necesitemos. Modelado de un Proyecto Los proyectos con maven se definen por archivo.xml denominado pom.xml. Este archivo será el encargado de definir las características que contendrá el proyecto además de gestionar las dependencias del mismo.

Características… Repositorios Remotos Maven se encarga de traer a nuestro entorno local (repositorio local) las dependencias ubicadas en el repositorio central y agregarlas como dependencias a nuestro proyecto. Además, se pueden incluir otros repositorios de donde descargar dependencias, como también crear un repositorio propio dentro de la organización. Reutilización de la lógica de negocio Con maven se puede compilar, probar, empaquetar, desplegar y distribuir nuestro proyecto con una línea por consola de comandos. Ciclo de vida de un proyecto El ciclo de vida de Maven son las diferentes fases por las que atraviesa el proyecto. Maven permite agregar nuevas fases a las ya predefinidas. Las fases predefinidas son las siguientes: compile : compila los fuentes de nuestro proyecto. test : ejecuta los test desarrollados para el proyecto. package : empaquetará nuestro proyecto con el formato que queramos (jar, war, ear, …). install : instalará nuestro proyecto en el repositorio local de Maven. deploy : despliega la aplicación.

Agenda Introducción Objetivos Lo que no es Maven Características Descarga e instalación Build Project [clean / install] Unit Test Phases Top plugins Estructura de proyectos El POM Build & Package Proyecto de ejemplo

Descarga e instalación Requisitos Maven es una herramienta Java por lo que se necesita tener JDK (no JRE) Java 1.5 o superior. Descarga e Instalación Ir al sitio de Apache Maven y descargar el software (actualmente en versión 3.1.1) e instalar acorde a su sistema operativo. Crear una variable de entorno MVN_HOME que apunte al directorio donde fue descomprimido el archivo. Probar la instalación ejecutando mvn –version, debería ver un resultado como este:

Construir proyecto [clean/install] mvn clean Desde la consola, en el directorio del pom.xml ejecutar mvn clean, este comando elimina todos los archivos.class y.jar generados. mvn install Luego de haber limpiado el proyecto se puede hacer un compilado desde cero utilizando mvn compile, esta instrucción genera los archivos.class compilando los fuentes.java. Al finalizar la compilación se ejecuta mvn install para generar el artefacto (jar o war) y copiar el archivo generado al directorio local de dependencias (.m2). De esta forma esas dependencias pueden utilizarse en otros proyectos maven dentro de la misma maquina. El proceso de instalación tratará de ejecutar las pruebas unitarias definidas en el proyecto (si hubieran) y si estas fallaran se abortará el proceso de instalación y no se crearán los artefactos.

Unit testing JUnit Para integrar Junit con maven basta con agregar la dependencia en nuestro pom. junit 4.11 test Integración con el código fuente La integración se hace a través de anotaciones agregando a los metodos de prueba la estos no deben retornar parametros y ser public void testSuma() {... }

Unit testing… Integración con el código fuente Si se deseara validar que el método devuelva alguna excepción expected= MyException.class) public void testSuma() {... } Si quisieramos que el método no se tome en cuenta utilizamos la JUnit permite definir como se han de ejecutar los tests, mediante el uso de diferentes TestRunners con la JUnit4Runner por defecto ParameterizedEjecuta múltiples veces cada test con diferentes parámetros SuiteRunner de los Test Suite SpringJUnit4ClassRunnerRunner de Spring para que los tests puedan trabajar con el contenedor de IoC

Agenda Introducción Objetivos Lo que no es Maven Características Descarga e instalación Build Project [clean / install] Unit Test Phases Top plugins Estructura de proyectos El POM Build & Package Proyecto de ejemplo

Phases Para maven una es un paso en el ciclo de vida de una construcción, el cual a la vez es una secuencia ordenada de fases. Cuando una fase es dada, maven ejecuta cada fase según la secuencia definida e incluye la fase indicada. FASEDESCRIPCION ValidateVerifica que el proyecto sea correcto y toda la información este disponible. CompileCompila el código fuente del proyecto. TestEjecuta los casos de prueba del proyecto utilizando un framework para pruebas unitarias. PackageGenera un archivo jar ó war. Integration-TestProcesa y despliega el paquete generado en la fase Package en un ambiente de donde las pruebas de integración puedan ser ejecutadas. VerifyComprueba que el paquete sea valido y cumpla con los criterios de calidad. InstallInstala el paquete en el repositorio local para uso como dependencia en otros proyectos locales. DeployCopia el paquete a un repositorio remoto para ser compartido en con otros desarrolladores ó proyectos.

Plugins Existen en Maven 2 tipos de plugins: Build plugins: Son ejecutados durante el procesos de generación de un build. Report plugins: Son ejecutados durante la fase site. Los plugins mas comunes son: PLUGINDESCRIPCION ejbCrea un EJB para el proyecto jarCrea un JAR para el proyecto rarCrea un archivo RAR para el proyecto warCrea un WAR para el proyecto pdfGenera un PDF con la documentación del proyecto eclipseGenera un archivo de proyecto para eclipse

Estructura de proyectos Maven cuenta con una estructura de directorios que permite a los usuarios familiarizarse rápidamente con un proyecto. DIRECTORIODESCRIPCION src/main/javaFuentes de la aplicación src/main/resourcesRecursos de la aplicación src/main/webappFuentes de la aplicación web src/test/javaFuentes de los casos de prueba src/test/resourcesRecursos de los casos de prueba

El POM El POM o Project Object Model es un archivo XML que contiene la información acerca del proyecto y los detalles de configuración utilizados por Maven para construir un proyecto. Los requerimientos mínimos del POM son los siguientes: Project root modelVersion groupId artifactId Version Ejemplo de los requerimientos mínimos de un POM:

Super POM El súper POM es el archivo POM default de Maven, indirectamente todos los POM extienden el súper POM. El súper POM es similar al siguiente ejemplo:

Super POM El súper POM es el archivo POM default de Maven, indirectamente todos los POM extienden el súper POM. El súper POM es similar al siguiente ejemplo:

Dependencias Dependencias Transitivas Se importan automáticamente. Scope de las Dependencias compile, provided, runtime, test, system

Proyecto de ejemplo

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

Gracias! … continuará.... Stackoverflow: newalopez