CursosEmpresasBlogLiveConfPrecios

Guía de Maven

Clase 6 de 23 • Curso de Java para APIs REST 2016

Contenido del curso

Este curso no es vigente

  • 1

    AVISO IMPORTANTE

    00:12 min

Bienvenidos

  • 2

    Frameworks y herramientas de Java

    03:55 min

Introducción a Java Enterprise Edition

  • 3
    Preguntas antes de la clase

    Preguntas antes de la clase

    58:12 min
  • 4
    Diferencia entre Java y Java Enterprise

    Diferencia entre Java y Java Enterprise

    07:52 min
  • 5
    Contenedores de una aplicación JEE

    Contenedores de una aplicación JEE

    02:08 min
  • 6

    Guía de Maven

    Viendo ahora
  • 7

    Guía de Gradle

    01:56 min
  • 8
    Configuración de proyecto usando Maven y Gradle

    Configuración de proyecto usando Maven y Gradle

    34:59 min
  • 9
    Tipos de aplicaciones Web con JEE: Presentation vs Services

    Tipos de aplicaciones Web con JEE: Presentation vs Services

    13:44 min
  • 10
    Java Servlets

    Java Servlets

    46:04 min
  • 11
    Preguntas y respuestas en clase

    Preguntas y respuestas en clase

    20:20 min

Spring Framework y creación de un servicio REST

  • 12
    Preguntas antes de la clase

    Preguntas antes de la clase

    49:43 min
  • 13
    Servicio REST con Java

    Servicio REST con Java

    25:50 min
  • 14
    Inyección de dependencias

    Inyección de dependencias

    41:40 min
  • 15
    MVC con Spring framework

    MVC con Spring framework

    30:43 min
  • 16
    Preguntas y respuestas en clase

    Preguntas y respuestas en clase

    14:17 min

Proyecto Spring MVC a producción y Java 8

  • 17
    Preguntas antes de la clase

    Preguntas antes de la clase

    49:59 min
  • 18
    Lambdas con Java 8

    Lambdas con Java 8

    22:48 min
  • 19
    Proyecto a producción con AWS ElasticBeanstalk

    Proyecto a producción con AWS ElasticBeanstalk

    58:50 min
  • 20
    Preguntas y respuestas en clase

    Preguntas y respuestas en clase

    17:48 min

Complementos del curso

  • 21
    Unit testing en Java

    Unit testing en Java

    08:59 min
  • 22
    JSPs y sus alternativas

    JSPs y sus alternativas

    06:56 min
  • 23
    Persistencia en Java con JPA y Hibernate

    Persistencia en Java con JPA y Hibernate

    00:00 min
Tomar examen

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads

      Maven

      Es un proyecto creado por la fundación Apache, el cual busca manejar la construcción de proyectos, reportes, documentación de forma centralizada, básicamente una manera estándar de construir proyectos, esto nos da:

      • Una definición clara de en que consiste el proyecto

      • Una manera fácil de publicar proyectos y una manera de compartir JARs a través de varios proyectos

      • Una herramienta que ahora es usada para construir y manejar cualquier proyecto en JAVA

      ¿Qué es POM?

      Project Object Model en la unidad fundamental de trabajo en Maven, un archivo XML que contiene información del proyecto y detalles de configuración usado por Maven para construir el proyecto, en este se defines cosas cómo:

      • La descripción de un proyecto
      • Nombre, versión, tipos, localización del código y dependencias.
      • Plug-ins
      • Perfiles

      Objetivos de Maven

      • Hacer fácil el proceso de construcción de un proyecto
      • Proveer la forma uniforme de construir el sistema
      • Proveer información de calidad del proyecto
      • Proveer guías de buenas practicas de desarrollo
      • Permitir la migración transparente para nuevas características

      Instalación

      1. Lo primero que debemos tener instalado JDK, además de esto debemos fijar el tener JAVA_HOME como variable de entorno en Windows.
      maven-1.png
      maven-2.png
      1. Debemos descargar Maven (en Windows descargamos la opción Binary zip archive), descomprimimos y añadimos M2_HOME y MAVEN_HOME como variables de entorno con la ruta donde hemos colocado los archivos.
      maven-3.png
      maven-4.png

      Además debemos asegurarnos de adjuntar la ruta de la carpeta bin de Maven en la variable path.

      maven-5.png
      1. En la terminal podemos ejecutar el comando mvn -version esto debería devolvernos información de Maven.
      maven-6.png

      Creando nuestro primer proyecto.

      1. Primero creamos una carpeta para nuestro proyecto, en este caso mi-proyecto

      2. Desde la consola nos posicionamos dentro de esta carpeta y ejecutamos el comando mvn archetype:generate (asegúrate de tener conexión a Internet, ya que buscara una lista de arquitecturas de proyectos y plug-ins)

      maven-7.png

      Lo que haremos con este comando es generar la estructura para nuestro proyecto

      1. Nos arroja una lista de arquitecturas de proyectos que podemos elegir, vamos a dejar la opción por defecto (Lo más probable es que tengas un numero por defecto diferente a la imagen)
      maven-8.png
      1. Seleccionamos que tipo versión de la arquitectura vamos a usar, podemos usar la versión por defecto.
      maven-9.png
      1. En los siguientes pasos nos preguntara 4 datos fundamentales para nuestro proyecto,
      • groupid: identificará tu proyecto a través de todos los proyectos, vamos a usar com.proyecto 
      • artifactid: nombre de la versión jar sin versión, vamos a usar primer-proyecto 
      • version: Si planeas distribuir tu código debemos usar una versión basada en puntos (1.2, 1.3, 2.0,…) en este caso usaremos 1.0 
      • package: nombre del paquete principal de la aplicación, usaremos com.proyecto.demo

      Al final confirmas estos datos y ya tenemos los archivos del proyecto.

      maven-10.png
      maven-11.png

      Entendiendo pom.xml

      En el archivo pop.xml en la raíz del proyecto vamos a encontrar los datos que hemos definido, este archivo centraliza la información del proyecto y los detalles de configuración

      Al generar el anterior proyecto, tenemos un archivo con el siguiente código.

      4.0.0 com.proyecto primer-proyecto 1.0 jar primer-proyecto http://maven.apache.org UTF-8 junit junit 4.12

      Para añadir una dependencia lo hacemos dentro del tag

      Crear archivos .jar

      1. Compilar los archivos .java a .class

      Primero debemos remover todos los archivos binarios creados en anteriores builds, para esto ejecutamos el comando mvn clean

      maven-12.png

      Ahora compilamos nuestros código, esto convierte nuestros archivos .java a .class, ejecutamos el comando mvn compile

      maven-13.png
      1. Ejecutar tests

      Debemos compilar los test, para esto ejecutamos el comando mvn test-compile

      maven-14.png

      Ahora debemos ejecutar los test, para esto usamos el comando mvn test

      maven-15.png
      1. Crear .jar

      Ahora generamos el archivo .jar, para esto ejecutamos el comando mvn install

      maven-16.png
      maven-17.png

      Build Lifecycle

      Maven tiene definido un ciclo de vida para la construcción de paquetes, esta es una lista de los comandos principales o puedes encontrar la documentación en su sitio web.

      • validate
      • compile
      • test
      • package
      • integration-test
      • verify
      • install
      • deploy

      IDEs

      Todo el proceso que hemos realizado en esta guía desde la consola, podemos hacerlo desde cualquier IDEs, desde generar la estructura de un proyecto hasta crear el archivo .jar

      Para conocer el proceso en cada IDE puedes consultar la documentación oficial del que utilices.

      • IntelliJ IDEA
      • Netbeans
      • Eclipse
        Arantxa Giovanna Rosas Del Valle

        Arantxa Giovanna Rosas Del Valle

        student•
        hace 9 años

        Sólo como aclaración, es Project Object Model (Project con j no con y).

        Hay algunas faltas de ortografía y me parece importante que también sean validadas.

        Saludos

        Cesar David Ramírez Dimaté

        Cesar David Ramírez Dimaté

        student•
        hace 9 años

        Para los que deseen trabajar en alguna distribución de linux, dejo los siguientes comandos:

        1. Instalar Java 8
        sudo apt-get update
        sudo add-apt-repository ppa:webupd8team/java
        sudo apt-get update
        sudo apt-get install oracle-java8-installer
        java -version

        2. Instalar Maven

        Nota: Para tomar las variables de entorno (JAVA_HOME y el PATH) con Java, cerrar sesión de usuario y volver a ingresar.

        • Descargar maven.
        • Extraer el archivo y ejecutar en la consola
          sudo mv ~/Downloads/apache-maven-3.3.9 /opt
          sudo gedit /etc/bash.bashrc
        export MAVEN_HOME=/opt/apache-maven-3.3.9 export M2_HOME=/opt/apache-maven-3.3.9 export PATH=$PATH:$M2_HOME/bin
        • Cerrar sesión del usuario, ingresar nuevamente y verificar.
          mvn -version

        3. Crear proyecto por medio de la consola

        • Carpeta en Documentos llamada proyecto_maven
        • Ubicarse en la carpeta en la terminal
          mvn archetype:generate
        • Por defecto la arquitectura y su versión.
        • Datos del proyecto
          groupId: com.proyecto
          artifactid: primer-proyecto
          version: 1.0
          package: com.proyecto.demo

        Estructura del proyecto

        https://i.snag.gy/S4mPtM.jpg

        4. Crear archivos.jar
        mvn clean
        mvn compile
        mvn test-compile
        mvn test
        mvn install

          Aaron  Alonso Carhuaricra Huaman

          Aaron Alonso Carhuaricra Huaman

          student•
          hace 9 años

          Fantástico Gracias

          Junior Aguilera

          Junior Aguilera

          student•
          hace 6 años

          Estoy volviendo a la programación... alguien sabe en que proyectos puedo parcticipar desarrollando software y poder colaborar?

        Israel Sotomayor

        Israel Sotomayor

        student•
        hace 9 años

        Para aportar —> Si en el caso de que luego de configurar las variables de entorno con MAVEN_HOME, y ejecutan el comando desde el cmd para saber la version de maven con (mvn -version) y verificar si todo esta configurado bien, y no les corre, es porque necesitan acceder al cmd como administrador y luego de eso ya funciona todo bien, bueno es el caso que me sucedio a mi configurando Maven en Windows 8.1.

        José Manuel Martínez

        José Manuel Martínez

        student•
        hace 9 años

        Tuve problemas con la variable JAVA_HOME, ya que le indicaba como url al JRE en vez del JDk, cambiar la url de la variable y después reinicie mi PC. Con esto fue suficiente para poder corregir el error. Por lo cual es muy importante dar de alta correctamente nuestras variables de entorno.

        Saludos.

          Yeison Daza

          Yeison Daza

          student•
          hace 9 años

          Super, que bien que lograste avanzar con esto :)

          Juan Gabriel Perez Guerra

          Juan Gabriel Perez Guerra

          student•
          hace 9 años

          Si ahí esta el secreto para que MAVEN funcione las variables de entorno......

        Carlos Javier Meilan

        Carlos Javier Meilan

        student•
        hace 9 años

        Estoy perdido. La ùltima frase me confundiò. Aclaro que estoy con ubuntu y soy nuevo en esto. Significa que si tengo un IDE instalado no debo hacer todo lo anterior?
        Gracias desde ya

          Yeison Daza

          Yeison Daza

          student•
          hace 9 años

          Los IDEs traen formas automáticas de hacer estos procesos, para hacer más fácil la vida de los desarrolladores 😃

          Carlos Javier Meilan

          Carlos Javier Meilan

          student•
          hace 9 años

          jaja gracias yeison

        Everardo Jahaziel Martínez Isl Martínez Islas

        Everardo Jahaziel Martínez Isl Martínez Islas

        student•
        hace 9 años

        Aportación:
        Si les aparece el error “Failed to retrieve plugin descriptor error” al realizar mvn archetype:generate, tendrán que modificar el archivo settings.xml de la carpeta “apache-maven-3.3.9\conf” con la configuración de su proxy dentro de la etiqueta proxies, algo como esto:
        <proxy>
        <active>true</active>
        <host>ip</host>
        <port>puerto</port>
        </proxy>

        Diego A de la Cruz Rojas

        Diego A de la Cruz Rojas

        student•
        hace 9 años

        Hay algún inconveniente si estoy usando la version 1.7.0 de Java jdk?

          Ricardo Azpeitia P.

          Ricardo Azpeitia P.

          student•
          hace 9 años

          Recomendaría instalar la versión mas reciente.