0Pricing
Java Academy · Lección

Estructura de un proyecto Maven

POM, ciclo de vida y dependencias

Estructura de un proyecto Maven es una lección gratuita de Java Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Java Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Java Academy incluye 4 lecciones en total.

Estructura de un proyecto Maven

Maven es una herramienta de compilación y un gestor de dependencias basado en un único principio: convención sobre configuración. Siga su estructura estándar y la mayoría de las cosas funcionarán prácticamente sin configuración. En esta lección se explican la estructura, el POM y la gestión de dependencias.

La estructura de directorios estándar

Maven espera una estructura fija:

  • src/main/java — código fuente de producción.
  • src/main/resources — recursos de producción.
  • src/test/java — código fuente de pruebas.
  • target/ — salida de compilación (generada).

El POM

El corazón de un proyecto Maven es pom.xml: el modelo de objeto del proyecto. En él se declaran las coordenadas, las dependencias, los plugins y la configuración de compilación en XML.

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0.0</version>
  <packaging>jar</packaging>
</project>

Coordenadas: GAV

Cada artefacto se identifica mediante groupId, artifactId y version (GAV). Estas coordenadas identifican de forma única su proyecto y cada dependencia que incorpore.

Declarar dependencias

Las dependencias se enumeran dentro de <dependencies>. Maven las descarga, junto con sus dependencias transitivas, desde repositorios como Maven Central y las guarda en una caché local.

<dependencies>
  <dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.10.0</version>
    <scope>test</scope>
  </dependency>
</dependencies>

Ámbitos de las dependencias

El scope controla cuándo una dependencia está en el classpath:

  • compile — en todas partes (valor predeterminado).
  • provided — solo durante la compilación; el contenedor la proporciona en tiempo de ejecución.
  • runtime — en tiempo de ejecución y durante las pruebas, pero no durante la compilación.
  • test — solo para compilar y ejecutar pruebas.

Dependencias transitivas

Si A depende de B y B depende de C, Maven le proporciona C automáticamente: eso es la transitividad. Cuando hay conflictos entre versiones, Maven los resuelve mediante la definición más cercana en el árbol de dependencias.

El ciclo de vida de compilación

Maven define un ciclo de vida ordenado de fases. El ciclo de vida predeterminado incluye, en este orden: validate, compile, test, package, verify, install, deploy. Al ejecutar una fase, también se ejecutan todas las fases anteriores.

Comandos habituales

  • mvn compile — compilar las fuentes principales.
  • mvn test — ejecutar las pruebas unitarias.
  • mvn package — construir el JAR/WAR en target/.
  • mvn install — copiar el artefacto al repositorio local para que otros proyectos puedan usarlo.

El repositorio local

Los artefactos descargados se almacenan en caché en ~/.m2/repository. Las compilaciones posteriores reutilizan la caché en lugar de volver a descargarlos. mvn install coloca allí su propio artefacto para que los proyectos hermanos puedan depender de él.

Proyectos multimódulo

Un POM principal con <packaging>pom</packaging> puede enumerar módulos secundarios mediante <modules>. Maven los compila en el orden de sus dependencias, lo que permite que un sistema grande comparta la configuración y las versiones desde un único lugar.

Comprobación rápida

Compruebe su comprensión de la estructura de Maven.

Resumen

Ha aprendido los fundamentos de Maven:

  • Convención sobre configuración con la estructura estándar src/main/java.
  • El POM declara las coordenadas GAV, las dependencias y los plugins.
  • Los scopes (compile, provided, runtime, test) controlan la visibilidad en el classpath.
  • Las dependencias son transitivas; los conflictos se resuelven mediante la definición más cercana.
  • El ciclo de vida ordenado hace que una fase ejecute todas las fases anteriores.

Preguntas frecuentes

¿La lección «Estructura de un proyecto Maven» es gratis?

Sí — el texto completo de «Estructura de un proyecto Maven» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Java Academy, actualiza a CoddyKit PRO. El curso de Java Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Estructura de un proyecto Maven»?

POM, ciclo de vida y dependencias Practicas Java Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Java Academy?

No se requiere experiencia previa. Java Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Estructura de un proyecto Maven»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Java Academy?

Sí. Cada lección de Java Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Estructura de un proyecto Maven
  2. Plugins y goals de Maven
  3. Conceptos básicos de Gradle
  4. Elección de una herramienta de compilación
← Volver a Java Academy