Vue générale du fichier pom

La structure du projet est décrite dans le fichier pom.xml, qui doit se trouver dans le dossier racine du projet. Le contenu du fichier projet ressemble à ceci :

<project>
        <!—Description du projet en cours -->
        <groupId>...</groupId>
        <artifactId>...</artifactId>
        <packaging>...</packaging>
        <version>... </ version>


        <properties>
            <!-- Section Propriétés -->
        </properties>

        <dépôts>
            <!-- Section Dépôts -->
        </repositories>


        <dépendances>
            <!-- Section Dépendances -->
        </ dependencies>

        <build>
            <!-- Build section -->
        </build>
</project>

Toutes les sections peuvent ne pas être présentes dans la description pom.xml. Ainsi, les sections de propriétés et de référentiels ne sont souvent pas utilisées. Les paramètres de description du projet en cours sont obligatoires . Nous allons parler de la dernière section maintenant.

section de construction

La section build est facultative - Maven peut construire un projet sans elle. Mais si vous souhaitez mettre en place le montage d'un projet plus ou moins complexe, alors comprendre comment tout y fonctionne vous sera utile.

Prenons un exemple simple :

  <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>
                . . .
        </plugins>
    </build>

Cette section contient des informations de base sur la construction : où se trouvent les fichiers Java, les fichiers de ressources, quels plugins sont utilisés, où placer le projet construit.

Il existe quatre balises principales :

  • <nomfinal>
  • <répertoiresource>
  • <répertoire de sortie>
  • <ressources>

Analysons brièvement leur objectif :

La balise <finalName> spécifie le nom du fichier de construction résultant (jar, war, ear..) qui est créé dans la phase package . Si le paramètre n'est pas spécifié, la valeur par défaut, artefactId-version , est utilisée .

La balise <sourceDirectory> vous permet de redéfinir l'emplacement des fichiers source. Par défaut, les fichiers sont situés dans le répertoire ${basedir}/src/main/java , mais vous pouvez spécifier n'importe quel autre emplacement.

La balise <outputDirectory> spécifie le répertoire dans lequel le compilateur enregistrera les résultats de la compilation - fichiers *.class . La valeur par défaut est cible/classes .

La balise <resources> et ses balises <resource> imbriquées définissent l'emplacement des fichiers de ressources. Les fichiers de ressources sont simplement copiés dans le répertoire outputDirectory lors de la construction de . La valeur par défaut du répertoire des ressources est src/main/resources .

La section de montage peut être configurée de manière particulièrement flexible. Nous le verrons plus en détail un peu plus tard.