Vista general del archivo pom

La estructura del proyecto se describe en el archivo pom.xml, que debe estar ubicado en la carpeta raíz del proyecto. El contenido del archivo del proyecto se ve así:

<proyecto>
        <!—Descripción del proyecto actual -->
        <groupId>...</groupId>
        <artifactId>...</artifactId>
        <packaging>...</packaging>
        <version>... </ versión>


        <propiedades>
            <!-- Sección de propiedades -->
        </propiedades>

        <repositorios>
            <!-- Sección de repositorios -->
        </repositorios>


        <dependencias>
            <!-- Sección de dependencias -->
        </ dependencias>

        <compilación>
            <!-- Sección de compilación --> </ construcción >
        </proyecto>

No todas las secciones pueden estar presentes en la descripción pom.xml. Por lo tanto, las secciones de propiedades y repositorios a menudo no se utilizan. Los parámetros de descripción del proyecto actual son obligatorios . Hablaremos ahora de la última sección.

sección de construcción

La sección de construcción es opcional : Maven puede construir un proyecto sin ella. Pero si desea configurar el ensamblaje de un proyecto más o menos complejo, será útil comprender cómo funciona todo allí.

Veamos un ejemplo sencillo:

  <build>
        <finalName>projectName</finalName>
        <sourceDirectory>${basedir}/src/java</sourceDirectory>
        <outputDirectory>${basedir}/targetDir</outputDirectory>
        <resources>
                <resource>
                <directory>${ basedir}/src/java/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                </includes>
                </resource>

        </resources>
        <plugins>
                . . .
        </complementos>
    </construir>

Esta sección contiene información básica sobre la construcción: dónde se encuentran los archivos Java, los archivos de recursos, qué complementos se usan, dónde colocar el proyecto construido.

Hay cuatro etiquetas principales:

  • <nombrefinal>
  • <directoriofuente>
  • <directorio de salida>
  • <recursos>

Analicemos brevemente su propósito:

La etiqueta <finalName> especifica el nombre del archivo de compilación resultante (jar, war, ear...) que se crea en la fase del paquete . Si no se especifica el parámetro, se utiliza el valor predeterminado, artifactId-version .

La etiqueta <sourceDirectory> le permite redefinir la ubicación de los archivos de origen. De forma predeterminada, los archivos se encuentran en el directorio ${basedir}/src/main/java , pero puede especificar cualquier otra ubicación.

La etiqueta <outputDirectory> especifica el directorio donde el compilador guardará los resultados de la compilación: archivos *.class . El valor predeterminado es target/classes .

La etiqueta <resources> y sus etiquetas <resource> anidadas definen la ubicación de los archivos de recursos. Los archivos de recursos simplemente se copian en el directorio outputDirectory al compilar . El valor predeterminado del directorio de recursos es src/main/resources .

La sección de montaje se puede configurar de forma especialmente flexible. Lo veremos con más detalle un poco más adelante.