Crear un proyecto Maven

Módulo 3. Java Professional
Nivel 1 , Lección 1
Disponible

Modelo de objeto de descripción del proyecto

Una de las cosas que Maven estandarizó en primer lugar fue la descripción del proyecto. Antes de Maven, cada IDE tenía su propio archivo de proyecto, que almacenaba información sobre el proyecto y su ensamblaje (y, a menudo, en forma binaria).

Maven ha creado un estándar abierto, universal y basado en XML que describe qué es un proyecto, cómo debe construirse y qué dependencias tiene usando varias etiquetas. La descripción del proyecto está contenida en un solo archivo, generalmente llamado pom.xml .

Un ejemplo de archivo pom.xml :

<?versión xml="1.0" codificación="UTF-8"?>
<proyecto xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3 .org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>commons-io </groupId>
           <artifactId>commons-io</artifactId>
        <version>2.6</version>
        </dependencia>
   </dependencias>


</proyecto>

Este ejemplo tiene tres cosas escritas:

  • La información sobre la versión del estándar del proyecto maven es azul.
  • La información sobre el proyecto en sí está en rojo.
  • La información sobre las bibliotecas usadas es verde.

Echemos un vistazo más de cerca al dispositivo de archivo pom.

Estructura del proyecto Maven

E inmediatamente la pregunta es: ¿prestaste atención a la extrañeza en el último ejemplo? ¡No contiene información sobre el código del proyecto en sí! No se sabe dónde se almacenan los archivos java, los recursos, los archivos de propiedades, html, los scripts de compilación y similares.

Y la respuesta es simple: Maven estandarizó el diseño del proyecto. Hay varias opciones para organizar el código dentro de un proyecto, y la más común es:

La estructura es un poco inusual después de los proyectos estándar de IDEA, pero por eso es universal. El 90% de los proyectos que encontrarás en tu vida tendrán esta estructura de carpetas .

Si crea un proyecto Maven (usando IDEA o usando la consola), entonces tomará la forma especificada. Veamos cómo funciona todo aquí.

La carpeta src , lo adivinó, contiene el código fuente del proyecto. Tiene dos subcarpetas: main y test .

La carpeta /src/main/java es la raíz de todas las clases Java del proyecto. Si tiene una clase com.codegym.Cat, estará en la carpeta /src/main/java /com/codegym /Cat.java . Si hay recursos de texto o binarios, deben almacenarse en la carpeta /src/main/resources .

La estructura de la carpeta /src/test es similar a la estructura de la carpeta /src/main , pero contiene las pruebas y sus recursos. Maven mismo sabe cómo ejecutar las pruebas necesarias al construir un proyecto, pero hablaremos de esto en una lección separada.

También hay una carpeta /target en el proyecto , donde Maven guardará el proyecto después de compilarlo. Dado que los proyectos grandes a menudo tienen scripts de compilación no triviales, no se almacena nada en esta carpeta.

El segundo propósito de la carpeta /target es almacenar en caché los resultados de compilación intermedios. Al construir un proyecto grande, Maven solo puede reconstruir la parte que ha cambiado, acelerando así el tiempo de construcción varias veces.

Bueno, como guinda del pastel, en la raíz misma del proyecto se encuentra el archivo pom.xml. Contiene toda la información necesaria sobre el proyecto, que discutiremos a continuación.

Dispositivo pom.xml

Para empezar, el archivo pom es xml, por lo que contiene los encabezados estándar y la información de los espacios de nombres. Todo esto se trata del estándar puramente XML, por lo que no hablaremos de ello en detalle. Significa esto:

<?versión xml="1.0" codificación="UTF-8"?>
<proyecto xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3 .org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

        …

</proyecto>

Además, normalmente la primera línea dentro de la etiqueta <project> es una descripción de la versión del estándar del archivo pom. Casi siempre es 4.0. Esto tampoco nos interesa.

Las primeras líneas que nos interesan se ven así:

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.sample.app</groupId>
  <artifactId>nueva aplicación</artifactId>
  <version>1.0-SNAPSHOT</version>

Para no entender una vez más lo que describimos (programa, proyecto, módulo, biblioteca, etc.) en el estándar Maven, a todo esto se le llama la palabra artefacto . Lo que no se puede negar a los creadores de Maven es el amor por la estandarización.

Las tres etiquetas que ves significan:

  • groupId : el paquete al que pertenece la aplicación, con la adición del nombre de dominio;
  • artefactoId : clave de cadena única (identificación del proyecto);
  • versión - versión del proyecto.

Estos tres parámetros son suficientes para describir sin ambigüedades cualquier artefacto .

Además, después de la descripción del proyecto, suele haber una lista de artefactos (bibliotecas) que utiliza el proyecto. Se ve algo como esto:

   <dependencias>

       <dependencia>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>

   </dependencies>

En este ejemplo, agregamos la biblioteca commons-io del paquete commons-io, versión 2.6, a nuestro proyecto.

En el momento de la compilación, Maven encontrará dicha biblioteca en su repositorio global y la agregará a su proyecto. Y por cierto, no solo Maven puede hacer esto.

Cómo funciona IDEA con Maven

Intellij IDEA es excelente para trabajar con Maven. Sabe cómo abrir dichos proyectos, crearlos ella misma, ejecutar varios scripts de compilación y comprende perfectamente las bibliotecas incluidas.

Incluso tiene su propio Maven incorporado durante algún tiempo, pero aún debe poder instalarlo y configurarlo usted mismo, por lo que esta función de IDEA no se mencionó anteriormente. En teoría, IDEA puede tener un conflicto entre dos Mavens, por lo que es bueno que sepas que hay dos.

Cómo crear un nuevo proyecto Maven en IDEA:

Haga clic en el menú Archivos > Nuevo proyecto. Seleccione el elemento de menú Nuevo proyecto a la izquierda .

proyecto experto

Aclaremos algunos puntos:

  1. Nombre del proyecto;
  2. Carpeta para el proyecto;
  3. El lenguaje del proyecto es Java;
  4. El tipo de proyecto es Maven.

En la sección Configuración avanzada en la parte inferior, IDEA le pedirá que especifique el ID de grupo, el ID de artefacto y la versión de nuestro nuevo proyecto. Estos datos siempre se pueden cambiar fácilmente más adelante. Elige entre las sugeridas o introduce las tuyas propias:

Proyecto Maven 2

A continuación, cree de forma estándar un proyecto en la ubicación requerida. Como resultado, vemos la estructura:

Proyecto Maven 3

Las clases y paquetes deben crearse en la carpeta java, ya hemos hablado de esto. Y creo que puedes manejarlo fácilmente. Estamos listos para continuar, pero retrocedamos un poco, a un tema importante que "salteamos" un poco.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION