Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos...
Transcript of Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos...
![Page 1: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/1.jpg)
Maven e IC
Maven, SonarQube, Artifactory y Jenkins
![Page 2: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/2.jpg)
Presentación
![Page 3: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/3.jpg)
Retos del Desarrollo SW
➢ Proyectos SW grandes y complejos➢ Cada vez más interoperabilidad➢ Muchos equipos de trabajo
(remotos)➢ Planificaciones cortas➢ Cambios en necesidades y requisitos
![Page 4: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/4.jpg)
Desarrollo Tradicional
➢ Construcción / lanzamiento “por petición”
➢ Estado de proyecto -> Compila➢ Bien documentado -> No es una
opción➢ Revisado -> Alguien ha testeado
Resultado: Falla en numerosas ocasiones
![Page 5: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/5.jpg)
Desarrollo Ágil
![Page 6: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/6.jpg)
¿Qué necesitamos?
➢ Construcción, pruebas y despliegue estandarizado
➢ Construcción, pruebas y despliegues continuos
➢ Asegurar pasos sólidos, reproducibles y analizables
![Page 7: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/7.jpg)
Integración Continua
➢ Definición -> Práctica de integración temprana y frecuente para evitar los problemas de la integración
➢ Objetivo -> Reducir el tiempo de reconstrucción y por tanto reducir costes y tiempo
![Page 8: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/8.jpg)
Integración Continua
➢ Trabajo humano➢ Trabajar en el código➢ Subir al SCM código y test
➢ Trabajo máquina➢ Consulta SCM en busca de cambios➢ Construye a partir del código➢ Ejecuta los test➢ Despliega librerías en el repositorio
![Page 9: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/9.jpg)
Integración Continua
![Page 10: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/10.jpg)
Integración Continua
BUILD
CÓDIGO
CÓDIGO
SCM SERVICIO IC
![Page 11: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/11.jpg)
Integración Continua
![Page 12: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/12.jpg)
¿Qué es Maven? - Definición
✓ "Software project management and comprehension tool"
✓ "An attempt to apply patterns to a project's build infrastructure in order to promote comprehension and productivity."
- maven.apache.org
![Page 13: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/13.jpg)
¿Qué es Maven?
➢ Herramienta de construcción➢ Enfocada a la simplicidad
➢ Creación (arquetipos) y gestión (valores por defecto)
➢ Cubre fases de construcción➢ Build Management➢ Testing➢ Release Versioning➢ Deployment
![Page 14: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/14.jpg)
¿Qué es Maven? - Proyecto
➢ Proyecto Open Source de Apache➢ Desarrollo iniciado en 2001➢ Surgió a partir de ficheros Ant de otros
proyectos Apache➢ Ha pasado por muchas iteraciones➢ La versión actual es Maven 3
http://maven.apache.org
![Page 15: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/15.jpg)
Principios de Maven
➢ Orientado a proyecto➢ Convención sobre configuración➢ Gestión de dependencias
➢ Internas y externas➢ Reutilización a través de repositorios
➢ Internos y externos➢ Extensible a través de plugins
![Page 16: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/16.jpg)
Orientado a Proyecto
➢ Maven modela las construcciones
como un Project Object Model (POM)
➢ Definido en XML en pom.xml
➢ Soporta herencia simple de tipo árbol
➢ Todo POM extiende del Super POM
![Page 17: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/17.jpg)
Convención sobre Configuración
<project> <groupId>com.projectsexception</groupId> <artifactId>redmine-api</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version></project>
![Page 18: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/18.jpg)
Gestión de Dependencias
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>${hibernate.version}</version> </dependency></dependencies>
➢ Escribir una vez➢ Mejorar las
dependencias anidadas➢ Dependencias
consistentes➢ Evitar la búsqueda de
JARs➢ Evitar la búsqueda de
versiones➢ Evitar la autogestión de
librerías➢ Gestión por ámbitos
![Page 19: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/19.jpg)
Repositorios
➢ Almacenan artefactos y dependencias➢ Repositorio Local
➢ Caché local de artefactos➢ Puede eliminarse completamente➢ Útil para construcciones offline➢ Reside en el directorio .m2 del usuario
➢ Repositorio Remoto
![Page 20: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/20.jpg)
Repositorio Remoto
➢ Central Repository almacena todos los artefactos
➢ El local descarga del central (maven.org)
Repositorio Local
Repositorio Remoto
Orden de búsqueda
![Page 21: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/21.jpg)
Repositorio Interno
➢ Repositorio corporativo➢ Suele hacer también de proxy
Repositorio Local
Repositorio Remoto
Orden de búsquedaRepositorio Interno
![Page 22: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/22.jpg)
Repositorios
<repositories> <repository> <id>LocalRepo</id> <name>LocalRepo</name> <url>file://${project.basedir}/lib</url> </repository> <repository> <id>IntraRepo</id> <name>IntraRepo</name> <url>http://intranet/repo</url> </repository> <repository> <id>java-net</id> <url>https://oss.sonatype.org/content/repositories/java-net/</url> </repository></repositories>
![Page 23: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/23.jpg)
Plugins
➢ Ant: Ejecutar tareas AND➢ Hibernate3: Generar POJO's, DAO y
XML Mappings basado en esquemas remotos
➢ Javadoc: Generate javadoc del código
http://maven.apache.org/plugins/http://mojo.codehaus.org/plugins.html
![Page 24: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/24.jpg)
Propiedades
➢ $MAVEN_HOME/conf/settings.xml➢ $USER_HOME/.m2/settings.xml➢ $PROJECT_HOME/pom.xml
<project> <groupId>com.projectsexception</groupId> <artifactId>redmine-api</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <properties> <greeting>hello</greeting> </properties></project>
${basedir}${project.groupId}${greeting}
![Page 25: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/25.jpg)
Perfiles
➢ Variables específicas del despliegue➢ Cambia URLs en base al entorno de
despliegue➢ Cambia código a través de filtrado
según el perfil➢ Simplifica y unifica métodos de
despliegue
![Page 26: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/26.jpg)
Perfiles - Definición
<profile> <id>dev</id> <properties> <name>DEVELOPMENT</name> <filter>dev-filter</filter> <include>dev-includes</include> </properties></profile><profile> <id>pro</id> <properties> <name>PRODUCTION</name> <filter>pro-filter</filter> <include>pro-includes</include> </properties></profile>
![Page 27: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/27.jpg)
Perfiles - Filtrar recursos
<filters> <filter>src/main/filters/${filter}.properties</filter></filters><resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>config.properties</include> <includes> </resource> <resource> <directory>src/main/resources</directory> <filtering>false</filtering> <excludes><exclude>config.properties</exclude></excludes> </resource></resources>
![Page 28: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/28.jpg)
Perfiles - Filtrar recursos web
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <webResources> <resource> <directory>${basedir}/src/main/webapp/META-INF</directory> <filtering>true</filtering> <targetPath>META-INF</targetPath> <includes> <include>context.xml</include> </includes> </resource> </webResources> </configuration></plugin>
![Page 29: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/29.jpg)
Perfiles - Filtrar recursos web
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <webResources> <resource> <directory>${basedir}/src/main/includes/${include}</directory> <filtering>true</filtering> <targetPath>WEB-INF</targetPath> </resource> </webResources> </configuration></plugin>
![Page 30: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/30.jpg)
Artifactory
➢ Es un repositorio Maven➢ Lo usaremos si:
➢ Necesitamos almacenar nuestras propias librerías
➢ Poner nuestras librerías disponibles en la red
➢ Podemos controlar el acceso➢ Actúa como proxy de forma
automática
![Page 31: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/31.jpg)
SonarQube
➢ SonarQube is the central place to manage code quality, offering visual reporting on and across projects and enabling to replay the past to follow metrics evolution
- sonarqube.org
![Page 32: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/32.jpg)
SonarQube
➢ Servidor web➢ Proyectos envían los datos➢ SonarQube almacena dichos datos
➢ Panel de control que permite ver los datos y la evolución a través de las versiones
➢ Extensible a través de plugins
![Page 33: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/33.jpg)
SonarQube
➢ CheckStyle - checkstyle.sourceforge.net➢ Findbugs - findbugs.sourceforge.net➢ PMD - pmd.sourceforge.net➢ Más a través de Plugins:
➢ Android➢ JavaScript➢ PHP
➢ MADEJA:www.juntadeandalucia.es/servicios/madeja/contenido/recurso/828
![Page 34: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/34.jpg)
Jenkins
➢ Jenkins provides an easy-to-use so-called continuous integration system, making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build.
-jenkins-ci.org
![Page 35: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/35.jpg)
Alternativas CI
➢ Hudson (mantenido by Oracle)➢ Travis CI (Solution alojada por
Github)➢ Bamboo (Atlassian)➢ TeamCity (JetBrains)➢ Jenkins (fork de Hudson)
➢ Popular➢ Versátil (más de 600 plugins)➢ Desarrollo y comunidad activa (LTS)
![Page 36: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/36.jpg)
Jenkins
➢ Testing➢ Unitarios, funcionales, de integración, de
rendimiento, análisis estático➢ Construcción
➢ Empaquetado, lanzamiento y publicación➢ Despliegue➢ Y más tareas repetitivas...
![Page 37: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/37.jpg)
Jenkins
➢ SCM➢ CVS, Subversion, Git, Mercurial,
Clearcase...➢ Ejecuta
➢ Apache Ant, Apache Maven, shell scripts y comandos batch de Windows
➢ Inicio➢ Commit, cron, otras construcciones,
petición URL o manualmente
![Page 38: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/38.jpg)
Crear un “job” en Jenkins
![Page 39: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/39.jpg)
Crear un “job” en Jenkins
![Page 40: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/40.jpg)
Crear un “job” en Jenkins
![Page 41: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/41.jpg)
Crear un “job” en Jenkins
![Page 42: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/42.jpg)
¿Cómo monto yo todo esto?
![Page 43: Maven e IC - Universidad de Sevilla...Maven, SonarQube, Artifactory y Jenkins Presentación Retos del Desarrollo SW Proyectos SW grandes y complejos Cada vez más interoperabilidad](https://reader030.fdocumento.com/reader030/viewer/2022041108/5f0bd7af7e708231d4327b8b/html5/thumbnails/43.jpg)
Instalaciones
➢ Maven➢ Descomprime y añade al PATH
➢ SonarQube➢ Descargar y ejecutar
➢ Jenkins➢ WAR o paquete para Windows,
Ubuntu/Debian, Red Hat/Fedora/CentOS, Mac OS X, openSUSE, FreeBSD, OpenBSD, Solaris/OpenIndiana y Gentoo