La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Maven Build & Deployment Part I Carlos Alberto López Carlos Alberto López"— Transcripción de la presentación:

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

2 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

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

4 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.

5 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.

6 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.

7 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.

8 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

9 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 http://maven.apache.org/download.html y descargar el software (actualmente en versión 3.1.1) e instalar acorde a su sistema operativo.http://maven.apache.org/download.html 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:

10 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.

11 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 anotación @Test, estos no deben retornar parametros y ser públicos. @Test public void testSuma() {... }

12 Unit testing… Integración con el código fuente Si se deseara validar que el método devuelva alguna excepción utilizamos:. @Test( expected= MyException.class) public void testSuma() {... } Si quisieramos que el método no se tome en cuenta utilizamos la anotación @Ignore. JUnit permite definir como se han de ejecutar los tests, mediante el uso de diferentes TestRunners con la anotación @RunWith. 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

13 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

14 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.

15 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

16 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

17 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:

18 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:

19 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:

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

21 Proyecto de ejemplo

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

23 Gracias! … continuará.... newalopez@gmail.com Stackoverflow: newalopez


Descargar ppt "Maven Build & Deployment Part I Carlos Alberto López Carlos Alberto López"

Presentaciones similares


Anuncios Google