SlideShare una empresa de Scribd logo
Gestión de proyectos con Maven
Víctor Orozco - @tuxtor
8 de octubre de 2020
Academik
1
¿Como programar en Java?
1. Crear un proyecto (Objetivo, framework y SCM)
2. Programar el proyecto
3. Ejecutar el proyecto*
2
¿Como programar en Java?
1. Crear un proyecto (Objetivo, framework y SCM)
2. Programar el proyecto
3. Ejecutar el proyecto*
3
Proyectos en Maven
Compilador
4
Compilador
5
Compilador
• ¿Dependencias?
• ¿Proceso de ensamblaje?
• ¿Proyecto final? ¿.jar, .war, .ear
6
Compilador
• ¿Dependencias?
• ¿Proceso de ensamblaje?
• ¿Proyecto final? ¿.jar, .war, .ear
Task runner + Gestor de dependencias
6
Maven
• Project Object Model (Declarativo)
• Construcción, reportes, documentación
• Build tool
• Arquetipos
• Ensamblado manual
• Bill of materials (BOM)
• Starter
• .jar, .war, .ear
7
Maven - Arquetipo
• groupId: Identifica y da pertenencia al paquete/biblioteca/proyecto hacia una
empresa/organización
• artifactId: Identificador primario del artefacto
• version: Versión del paquete
8
Maven - Arquetipo
mvn archetype:generate
-DgroupId=com.nabenik -DartifactId=demo1
9
Maven - Arquetipo
10
Maven - Arquetipo
mvn archetype:generate -DgroupId=com.nabenik
-DarchetypeArtifactId=maven-archetype -quickstart
-DartifactId=demo1
11
Maven - Arquetipo
12
Maven - Arquetipo
Estructura de carpetas
• src/main/java - Código fuente
• src/main/resources - Recursos del proyecto (se copian de forma integra)
• src/main/webapp - Recursos web y/o basados en Servlet
• src/test/* - Entorno de pruebas
• target - Archivos generados por Maven
13
14
15
Maven
16
Maven - Fases
• clean - Elimina el directorio target
• validate - Valida si el proyecto es correcto
• compile - Compila los archivos fuente y almacena el resutado en
target/classes
• test - Ejecuta tests
• package - Toma los objetos compilados y los empaca en formatos distribuibles
e.g. JAR, WAR
• verify - Ejecuta tests adicionales sobre el paquete para control de calidad
• install - Instala el paquete en el repositorio local
• deploy - Despliega el paquete en un repositorio remoto
17
Maven - Ejercicio 1
Mediante Maven ejecute la creación de un proyecto denominado demo2 y en el mismo
implemente un programa que permita la fabricación de objetos automóvil de acuerdo al
siguiente diagrama de clases:
18
Maven - Fases y plugins
• Fases - Ejecutadas por plugins intercambiables
• Goal - Un paso dentro de un plugin que se ejecuta dentro de una fase
• Los Goals ejecutan el trabajo dentro de las fases
<build>
<plugins>
. . .
</plugins>
</build>
19
Maven Plugins - Dependency
mvn dependency:analyze
mvn dependency:tree
20
Maven Plugins - Compiler
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler -plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
21
Maven Plugins - Jar
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
...
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
</configuration>
...
</plugin>
22
Maven - Ejemplo 2
Compile y empaque el proyecto, posteriormente ejecute la clase App.java contenida
en el arquetipo de java
23
Maven - Ejemplo 3
Ejecute los ejercicios 1 y 2 en su IDE de preferencia
24
Maven - Ejemplo 4
Utilice el starter de Helidon para generar una API web con MicroProfile
25
Maven - Ejemplo 5
Automatice la creación de un container en Docker con Maven
26
Víctor Orozco
• vorozco@nabenik.com
• @tuxtor
• http://vorozco.com
• http://tuxtor.shekalug.org
This work is licensed under Creative
Commons Attribution-
NonCommercial-ShareAlike 3.0
Guatemala (CC BY-NC-SA 3.0 GT).
27
28

Más contenido relacionado

La actualidad más candente

Java EE moderno, de monolitos a Payara Micro
Java EE moderno, de monolitos a Payara MicroJava EE moderno, de monolitos a Payara Micro
Java EE moderno, de monolitos a Payara Micro
Víctor Leonel Orozco López
 
Implementando una Arquitectura de Microservicios
Implementando una Arquitectura de MicroserviciosImplementando una Arquitectura de Microservicios
Implementando una Arquitectura de Microservicios
Federico Damián Lozada Mosto
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menos
Eduard Tomàs
 
Kubernetes: Do's, don'ts and why's
Kubernetes: Do's, don'ts and why'sKubernetes: Do's, don'ts and why's
Kubernetes: Do's, don'ts and why's
Eduard Tomàs
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
Paradigma Digital
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
Paradigma Digital
 
Introduccion a Node.js
Introduccion a Node.jsIntroduccion a Node.js
Introduccion a Node.js
Rodolfo Finochietti
 
Containers en .NET (Dot Net 2018 - Spain)
Containers en .NET (Dot Net 2018 - Spain)Containers en .NET (Dot Net 2018 - Spain)
Containers en .NET (Dot Net 2018 - Spain)
Eduard Tomàs
 
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
Carlos Landeras Martínez
 
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
Carlos Crisóstomo Vals
 
Introducción a microservicios
Introducción a microserviciosIntroducción a microservicios
Introducción a microservicios
Erasmo Domínguez Jiménez
 
Web Day Devops - Plain Concepts
Web Day Devops - Plain ConceptsWeb Day Devops - Plain Concepts
Web Day Devops - Plain Concepts
Manuel Rodrigo Cabello Malagón
 
Java EE, Microprofile y Payara Micro
Java EE, Microprofile y Payara MicroJava EE, Microprofile y Payara Micro
Java EE, Microprofile y Payara Micro
Víctor Leonel Orozco López
 
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDAKCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
Eduard Tomàs
 
Microservicios funcionales con Java 8, Java EE y Payara Micro
Microservicios funcionales con Java 8, Java EE y Payara MicroMicroservicios funcionales con Java 8, Java EE y Payara Micro
Microservicios funcionales con Java 8, Java EE y Payara Micro
Víctor Leonel Orozco López
 
Kubernetes para developers
Kubernetes para developersKubernetes para developers
Kubernetes para developers
Jaime Perera Merino
 
Keda o como convertir Kubernetess en Serverless
Keda o como convertir Kubernetess en ServerlessKeda o como convertir Kubernetess en Serverless
Keda o como convertir Kubernetess en Serverless
Eduard Tomàs
 
Orquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNextOrquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNext
Domingo Suarez Torres
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
ITPAMI
 
Cloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesCloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a Kubernetes
Domingo Suarez Torres
 

La actualidad más candente (20)

Java EE moderno, de monolitos a Payara Micro
Java EE moderno, de monolitos a Payara MicroJava EE moderno, de monolitos a Payara Micro
Java EE moderno, de monolitos a Payara Micro
 
Implementando una Arquitectura de Microservicios
Implementando una Arquitectura de MicroserviciosImplementando una Arquitectura de Microservicios
Implementando una Arquitectura de Microservicios
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menos
 
Kubernetes: Do's, don'ts and why's
Kubernetes: Do's, don'ts and why'sKubernetes: Do's, don'ts and why's
Kubernetes: Do's, don'ts and why's
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
 
Introduccion a Node.js
Introduccion a Node.jsIntroduccion a Node.js
Introduccion a Node.js
 
Containers en .NET (Dot Net 2018 - Spain)
Containers en .NET (Dot Net 2018 - Spain)Containers en .NET (Dot Net 2018 - Spain)
Containers en .NET (Dot Net 2018 - Spain)
 
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
 
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
Workshop 1 - Introducción a los Microservicios y Contenedores (@TechHub - Goo...
 
Introducción a microservicios
Introducción a microserviciosIntroducción a microservicios
Introducción a microservicios
 
Web Day Devops - Plain Concepts
Web Day Devops - Plain ConceptsWeb Day Devops - Plain Concepts
Web Day Devops - Plain Concepts
 
Java EE, Microprofile y Payara Micro
Java EE, Microprofile y Payara MicroJava EE, Microprofile y Payara Micro
Java EE, Microprofile y Payara Micro
 
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDAKCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
 
Microservicios funcionales con Java 8, Java EE y Payara Micro
Microservicios funcionales con Java 8, Java EE y Payara MicroMicroservicios funcionales con Java 8, Java EE y Payara Micro
Microservicios funcionales con Java 8, Java EE y Payara Micro
 
Kubernetes para developers
Kubernetes para developersKubernetes para developers
Kubernetes para developers
 
Keda o como convertir Kubernetess en Serverless
Keda o como convertir Kubernetess en ServerlessKeda o como convertir Kubernetess en Serverless
Keda o como convertir Kubernetess en Serverless
 
Orquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNextOrquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNext
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
Cloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesCloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a Kubernetes
 

Similar a Gestión de proyectos con Maven

Java desde cero maven
Java desde cero mavenJava desde cero maven
Java desde cero maven
www.mentoringit.com.mx
 
Proyectos java-con-maven
Proyectos java-con-mavenProyectos java-con-maven
Proyectos java-con-maven
Juan Vladimir
 
Proyectos JAVA con maven
Proyectos JAVA con mavenProyectos JAVA con maven
Proyectos JAVA con maven
Juan Vladimir
 
Gwt II - trabajando con gwt
Gwt II - trabajando con gwtGwt II - trabajando con gwt
Gwt II - trabajando con gwt
Manuel Carrasco Moñino
 
Gestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsGestión del software con Maven y Jenkins
Gestión del software con Maven y Jenkins
BEEVA_es
 
Modulo Jee Practica Pos Fp Une
Modulo Jee Practica  Pos Fp UneModulo Jee Practica  Pos Fp Une
Modulo Jee Practica Pos Fp UneMarcos Jara
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Micael Gallego
 
Proyect Evenge. Event manager
Proyect Evenge. Event managerProyect Evenge. Event manager
Proyect Evenge. Event manager
Ivan Ortega
 
Springboot Overview
Springboot  OverviewSpringboot  Overview
Springboot Overview
Jose Patricio Bovet Derpich
 
[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven
Eudris Cabrera
 
Maven
MavenMaven
Taller Evento TestingUY 2018 - Test Automation Gourmet
Taller Evento TestingUY 2018 - Test Automation GourmetTaller Evento TestingUY 2018 - Test Automation Gourmet
Taller Evento TestingUY 2018 - Test Automation Gourmet
TestingUy
 
Integrando sonar
Integrando sonarIntegrando sonar
Integrando sonar
Abimael Desales López
 
S8-DS2.pptx
S8-DS2.pptxS8-DS2.pptx
Dynamics saturday madrid 2018 bc-on-docker - jakub
Dynamics saturday madrid 2018   bc-on-docker - jakubDynamics saturday madrid 2018   bc-on-docker - jakub
Dynamics saturday madrid 2018 bc-on-docker - jakub
Demian Raschkovan
 
Curso de Struts 2: Unidad Didáctica 01 El Entorno de Desarrollo
Curso de Struts 2: Unidad Didáctica 01 El Entorno de DesarrolloCurso de Struts 2: Unidad Didáctica 01 El Entorno de Desarrollo
Curso de Struts 2: Unidad Didáctica 01 El Entorno de Desarrollo
David Vaquero
 
Presentacion de integracion continua (lima agile)
Presentacion de integracion continua (lima agile)Presentacion de integracion continua (lima agile)
Presentacion de integracion continua (lima agile)Gustavo Veliz
 

Similar a Gestión de proyectos con Maven (20)

Java desde cero maven
Java desde cero mavenJava desde cero maven
Java desde cero maven
 
Maven Overview
Maven OverviewMaven Overview
Maven Overview
 
Proyectos java-con-maven
Proyectos java-con-mavenProyectos java-con-maven
Proyectos java-con-maven
 
Proyectos JAVA con maven
Proyectos JAVA con mavenProyectos JAVA con maven
Proyectos JAVA con maven
 
Maven
MavenMaven
Maven
 
Gwt II - trabajando con gwt
Gwt II - trabajando con gwtGwt II - trabajando con gwt
Gwt II - trabajando con gwt
 
Gestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsGestión del software con Maven y Jenkins
Gestión del software con Maven y Jenkins
 
Modulo Jee Practica Pos Fp Une
Modulo Jee Practica  Pos Fp UneModulo Jee Practica  Pos Fp Une
Modulo Jee Practica Pos Fp Une
 
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
Herramientas y plugins para el desarrollo de aplicaciones cloud native para K...
 
Proyect Evenge. Event manager
Proyect Evenge. Event managerProyect Evenge. Event manager
Proyect Evenge. Event manager
 
Springboot Overview
Springboot  OverviewSpringboot  Overview
Springboot Overview
 
[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven
 
Maven
MavenMaven
Maven
 
Taller Evento TestingUY 2018 - Test Automation Gourmet
Taller Evento TestingUY 2018 - Test Automation GourmetTaller Evento TestingUY 2018 - Test Automation Gourmet
Taller Evento TestingUY 2018 - Test Automation Gourmet
 
Integrando sonar
Integrando sonarIntegrando sonar
Integrando sonar
 
S8-DS2.pptx
S8-DS2.pptxS8-DS2.pptx
S8-DS2.pptx
 
Dynamics saturday madrid 2018 bc-on-docker - jakub
Dynamics saturday madrid 2018   bc-on-docker - jakubDynamics saturday madrid 2018   bc-on-docker - jakub
Dynamics saturday madrid 2018 bc-on-docker - jakub
 
Herramientas Java
Herramientas JavaHerramientas Java
Herramientas Java
 
Curso de Struts 2: Unidad Didáctica 01 El Entorno de Desarrollo
Curso de Struts 2: Unidad Didáctica 01 El Entorno de DesarrolloCurso de Struts 2: Unidad Didáctica 01 El Entorno de Desarrollo
Curso de Struts 2: Unidad Didáctica 01 El Entorno de Desarrollo
 
Presentacion de integracion continua (lima agile)
Presentacion de integracion continua (lima agile)Presentacion de integracion continua (lima agile)
Presentacion de integracion continua (lima agile)
 

Más de Víctor Leonel Orozco López

Introducción al análisis de datos
Introducción al análisis de datosIntroducción al análisis de datos
Introducción al análisis de datos
Víctor Leonel Orozco López
 
From traditional to GitOps
From traditional to GitOpsFrom traditional to GitOps
From traditional to GitOps
Víctor Leonel Orozco López
 
De Java 8 a Java 17
De Java 8 a Java 17De Java 8 a Java 17
De Java 8 a Java 17
Víctor Leonel Orozco López
 
Desde la TV, hasta la nube, el ecosistema de Java en 26 años
Desde la TV, hasta la nube, el ecosistema de Java en 26 añosDesde la TV, hasta la nube, el ecosistema de Java en 26 años
Desde la TV, hasta la nube, el ecosistema de Java en 26 años
Víctor Leonel Orozco López
 
Bootstraping real world Jakarta EE/MicroProfile microservices with Maven Arch...
Bootstraping real world Jakarta EE/MicroProfile microservices with Maven Arch...Bootstraping real world Jakarta EE/MicroProfile microservices with Maven Arch...
Bootstraping real world Jakarta EE/MicroProfile microservices with Maven Arch...
Víctor Leonel Orozco López
 
Design Patterns para Microsserviços com MicroProfile
 Design Patterns para Microsserviços com MicroProfile Design Patterns para Microsserviços com MicroProfile
Design Patterns para Microsserviços com MicroProfile
Víctor Leonel Orozco López
 
MicroProfile benefits for your monolithic applications
MicroProfile benefits for your monolithic applicationsMicroProfile benefits for your monolithic applications
MicroProfile benefits for your monolithic applications
Víctor Leonel Orozco López
 
Consejos y el camino del desarrollador de software
Consejos y el camino del desarrollador de softwareConsejos y el camino del desarrollador de software
Consejos y el camino del desarrollador de software
Víctor Leonel Orozco López
 
Seguridad de aplicaciones Java/JakartaEE con OWASP Top 10
Seguridad de aplicaciones Java/JakartaEE con OWASP Top 10Seguridad de aplicaciones Java/JakartaEE con OWASP Top 10
Seguridad de aplicaciones Java/JakartaEE con OWASP Top 10
Víctor Leonel Orozco López
 
Introducción a Kotlin para desarrolladores Java
Introducción a Kotlin para desarrolladores JavaIntroducción a Kotlin para desarrolladores Java
Introducción a Kotlin para desarrolladores Java
Víctor Leonel Orozco López
 
De Java 8 ate Java 14
De Java 8 ate Java 14De Java 8 ate Java 14
De Java 8 ate Java 14
Víctor Leonel Orozco López
 
Programación con ECMA6 y TypeScript
Programación con ECMA6 y TypeScriptProgramación con ECMA6 y TypeScript
Programación con ECMA6 y TypeScript
Víctor Leonel Orozco López
 
De Java 8 a Java 11 y 14
De Java 8 a Java 11 y 14De Java 8 a Java 11 y 14
De Java 8 a Java 11 y 14
Víctor Leonel Orozco López
 
MicroProfile benefits for monolitic applications
MicroProfile benefits for monolitic applicationsMicroProfile benefits for monolitic applications
MicroProfile benefits for monolitic applications
Víctor Leonel Orozco López
 
Kotlin+MicroProfile: Enseñando trucos de 20 años a un nuevo lenguaje
Kotlin+MicroProfile: Enseñando trucos de 20 años a un nuevo lenguajeKotlin+MicroProfile: Enseñando trucos de 20 años a un nuevo lenguaje
Kotlin+MicroProfile: Enseñando trucos de 20 años a un nuevo lenguaje
Víctor Leonel Orozco López
 
Kotlin+MicroProfile: Ensinando 20 anos para uma linguagem nova
Kotlin+MicroProfile: Ensinando 20 anos para uma linguagem novaKotlin+MicroProfile: Ensinando 20 anos para uma linguagem nova
Kotlin+MicroProfile: Ensinando 20 anos para uma linguagem nova
Víctor Leonel Orozco López
 
Eclipse MicroProfile para el desarrollador ocupado
Eclipse MicroProfile para el desarrollador ocupadoEclipse MicroProfile para el desarrollador ocupado
Eclipse MicroProfile para el desarrollador ocupado
Víctor Leonel Orozco López
 
Eclipse MicroProfile para o desenvolvedor ocupado
Eclipse MicroProfile para o desenvolvedor ocupadoEclipse MicroProfile para o desenvolvedor ocupado
Eclipse MicroProfile para o desenvolvedor ocupado
Víctor Leonel Orozco López
 
Eclipse MicroProfile metrics: Practical use cases
Eclipse MicroProfile metrics: Practical use casesEclipse MicroProfile metrics: Practical use cases
Eclipse MicroProfile metrics: Practical use cases
Víctor Leonel Orozco López
 
Microservicios con Jakarta EE y Eclipse MicroProfile
Microservicios con Jakarta EE y Eclipse MicroProfileMicroservicios con Jakarta EE y Eclipse MicroProfile
Microservicios con Jakarta EE y Eclipse MicroProfile
Víctor Leonel Orozco López
 

Más de Víctor Leonel Orozco López (20)

Introducción al análisis de datos
Introducción al análisis de datosIntroducción al análisis de datos
Introducción al análisis de datos
 
From traditional to GitOps
From traditional to GitOpsFrom traditional to GitOps
From traditional to GitOps
 
De Java 8 a Java 17
De Java 8 a Java 17De Java 8 a Java 17
De Java 8 a Java 17
 
Desde la TV, hasta la nube, el ecosistema de Java en 26 años
Desde la TV, hasta la nube, el ecosistema de Java en 26 añosDesde la TV, hasta la nube, el ecosistema de Java en 26 años
Desde la TV, hasta la nube, el ecosistema de Java en 26 años
 
Bootstraping real world Jakarta EE/MicroProfile microservices with Maven Arch...
Bootstraping real world Jakarta EE/MicroProfile microservices with Maven Arch...Bootstraping real world Jakarta EE/MicroProfile microservices with Maven Arch...
Bootstraping real world Jakarta EE/MicroProfile microservices with Maven Arch...
 
Design Patterns para Microsserviços com MicroProfile
 Design Patterns para Microsserviços com MicroProfile Design Patterns para Microsserviços com MicroProfile
Design Patterns para Microsserviços com MicroProfile
 
MicroProfile benefits for your monolithic applications
MicroProfile benefits for your monolithic applicationsMicroProfile benefits for your monolithic applications
MicroProfile benefits for your monolithic applications
 
Consejos y el camino del desarrollador de software
Consejos y el camino del desarrollador de softwareConsejos y el camino del desarrollador de software
Consejos y el camino del desarrollador de software
 
Seguridad de aplicaciones Java/JakartaEE con OWASP Top 10
Seguridad de aplicaciones Java/JakartaEE con OWASP Top 10Seguridad de aplicaciones Java/JakartaEE con OWASP Top 10
Seguridad de aplicaciones Java/JakartaEE con OWASP Top 10
 
Introducción a Kotlin para desarrolladores Java
Introducción a Kotlin para desarrolladores JavaIntroducción a Kotlin para desarrolladores Java
Introducción a Kotlin para desarrolladores Java
 
De Java 8 ate Java 14
De Java 8 ate Java 14De Java 8 ate Java 14
De Java 8 ate Java 14
 
Programación con ECMA6 y TypeScript
Programación con ECMA6 y TypeScriptProgramación con ECMA6 y TypeScript
Programación con ECMA6 y TypeScript
 
De Java 8 a Java 11 y 14
De Java 8 a Java 11 y 14De Java 8 a Java 11 y 14
De Java 8 a Java 11 y 14
 
MicroProfile benefits for monolitic applications
MicroProfile benefits for monolitic applicationsMicroProfile benefits for monolitic applications
MicroProfile benefits for monolitic applications
 
Kotlin+MicroProfile: Enseñando trucos de 20 años a un nuevo lenguaje
Kotlin+MicroProfile: Enseñando trucos de 20 años a un nuevo lenguajeKotlin+MicroProfile: Enseñando trucos de 20 años a un nuevo lenguaje
Kotlin+MicroProfile: Enseñando trucos de 20 años a un nuevo lenguaje
 
Kotlin+MicroProfile: Ensinando 20 anos para uma linguagem nova
Kotlin+MicroProfile: Ensinando 20 anos para uma linguagem novaKotlin+MicroProfile: Ensinando 20 anos para uma linguagem nova
Kotlin+MicroProfile: Ensinando 20 anos para uma linguagem nova
 
Eclipse MicroProfile para el desarrollador ocupado
Eclipse MicroProfile para el desarrollador ocupadoEclipse MicroProfile para el desarrollador ocupado
Eclipse MicroProfile para el desarrollador ocupado
 
Eclipse MicroProfile para o desenvolvedor ocupado
Eclipse MicroProfile para o desenvolvedor ocupadoEclipse MicroProfile para o desenvolvedor ocupado
Eclipse MicroProfile para o desenvolvedor ocupado
 
Eclipse MicroProfile metrics: Practical use cases
Eclipse MicroProfile metrics: Practical use casesEclipse MicroProfile metrics: Practical use cases
Eclipse MicroProfile metrics: Practical use cases
 
Microservicios con Jakarta EE y Eclipse MicroProfile
Microservicios con Jakarta EE y Eclipse MicroProfileMicroservicios con Jakarta EE y Eclipse MicroProfile
Microservicios con Jakarta EE y Eclipse MicroProfile
 

Último

Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
SofiaCollazos
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
tamarita881
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
sofiahuarancabellido
 
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
AMADO SALVADOR
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
julio05042006
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
IsabelQuintero36
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
JuanAlvarez413513
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
juanchogame18
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
paulroyal74
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
maralache30
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 

Último (20)

Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
 
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 

Gestión de proyectos con Maven

  • 1. Gestión de proyectos con Maven Víctor Orozco - @tuxtor 8 de octubre de 2020 Academik 1
  • 2. ¿Como programar en Java? 1. Crear un proyecto (Objetivo, framework y SCM) 2. Programar el proyecto 3. Ejecutar el proyecto* 2
  • 3. ¿Como programar en Java? 1. Crear un proyecto (Objetivo, framework y SCM) 2. Programar el proyecto 3. Ejecutar el proyecto* 3
  • 7. Compilador • ¿Dependencias? • ¿Proceso de ensamblaje? • ¿Proyecto final? ¿.jar, .war, .ear 6
  • 8. Compilador • ¿Dependencias? • ¿Proceso de ensamblaje? • ¿Proyecto final? ¿.jar, .war, .ear Task runner + Gestor de dependencias 6
  • 9. Maven • Project Object Model (Declarativo) • Construcción, reportes, documentación • Build tool • Arquetipos • Ensamblado manual • Bill of materials (BOM) • Starter • .jar, .war, .ear 7
  • 10. Maven - Arquetipo • groupId: Identifica y da pertenencia al paquete/biblioteca/proyecto hacia una empresa/organización • artifactId: Identificador primario del artefacto • version: Versión del paquete 8
  • 11. Maven - Arquetipo mvn archetype:generate -DgroupId=com.nabenik -DartifactId=demo1 9
  • 13. Maven - Arquetipo mvn archetype:generate -DgroupId=com.nabenik -DarchetypeArtifactId=maven-archetype -quickstart -DartifactId=demo1 11
  • 15. Maven - Arquetipo Estructura de carpetas • src/main/java - Código fuente • src/main/resources - Recursos del proyecto (se copian de forma integra) • src/main/webapp - Recursos web y/o basados en Servlet • src/test/* - Entorno de pruebas • target - Archivos generados por Maven 13
  • 16. 14
  • 17. 15
  • 19. Maven - Fases • clean - Elimina el directorio target • validate - Valida si el proyecto es correcto • compile - Compila los archivos fuente y almacena el resutado en target/classes • test - Ejecuta tests • package - Toma los objetos compilados y los empaca en formatos distribuibles e.g. JAR, WAR • verify - Ejecuta tests adicionales sobre el paquete para control de calidad • install - Instala el paquete en el repositorio local • deploy - Despliega el paquete en un repositorio remoto 17
  • 20. Maven - Ejercicio 1 Mediante Maven ejecute la creación de un proyecto denominado demo2 y en el mismo implemente un programa que permita la fabricación de objetos automóvil de acuerdo al siguiente diagrama de clases: 18
  • 21. Maven - Fases y plugins • Fases - Ejecutadas por plugins intercambiables • Goal - Un paso dentro de un plugin que se ejecuta dentro de una fase • Los Goals ejecutan el trabajo dentro de las fases <build> <plugins> . . . </plugins> </build> 19
  • 22. Maven Plugins - Dependency mvn dependency:analyze mvn dependency:tree 20
  • 23. Maven Plugins - Compiler <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler -plugin</artifactId> <version>3.6.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> 21
  • 24. Maven Plugins - Jar <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.1.0</version> ... <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>fully.qualified.MainClass</mainClass> </manifest> </archive> </configuration> ... </plugin> 22
  • 25. Maven - Ejemplo 2 Compile y empaque el proyecto, posteriormente ejecute la clase App.java contenida en el arquetipo de java 23
  • 26. Maven - Ejemplo 3 Ejecute los ejercicios 1 y 2 en su IDE de preferencia 24
  • 27. Maven - Ejemplo 4 Utilice el starter de Helidon para generar una API web con MicroProfile 25
  • 28. Maven - Ejemplo 5 Automatice la creación de un container en Docker con Maven 26
  • 29. Víctor Orozco • vorozco@nabenik.com • @tuxtor • http://vorozco.com • http://tuxtor.shekalug.org This work is licensed under Creative Commons Attribution- NonCommercial-ShareAlike 3.0 Guatemala (CC BY-NC-SA 3.0 GT). 27
  • 30. 28