Algemeen overzicht van het pom-bestand

De structuur van het project wordt beschreven in het bestand pom.xml, dat zich in de hoofdmap van het project moet bevinden. De inhoud van het projectbestand ziet er als volgt uit:

<project>
        <!—Beschrijving van het huidige project -->
        <groupId>...</groupId>
        <artifactId>...</artifactId>
        <packaging>...</packaging>
        <version>... </ version>


        <properties>
            <!-- Eigenschappen sectie -->
        </properties>

        <repositories>
            <!-- Repositories sectie -->
        </repositories>


        <dependencies>
            <!-- Sectie Afhankelijkheden -->
        </ afhankelijkheden>

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

Mogelijk zijn niet alle secties aanwezig in de pom.xml-beschrijving. Dus de secties eigenschappen en repositories worden vaak niet gebruikt. De beschrijvingsparameters van het huidige project zijn vereist . We zullen het nu hebben over het laatste gedeelte.

sectie bouwen

Het bouwgedeelte is optioneel - Maven kan een project bouwen zonder. Maar als u de montage van een min of meer complex project wilt opzetten, is het handig om te begrijpen hoe alles daar werkt.

Laten we een eenvoudig voorbeeld bekijken:

  <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>

Dit gedeelte bevat basisinformatie over bouwen: waar Java-bestanden zich bevinden, bronbestanden, welke plug-ins worden gebruikt, waar het gebouwde project moet worden geplaatst.

Er zijn vier hoofdtags:

  • <finalName>
  • <bronDirectory>
  • <uitvoermap>
  • <bronnen>

Laten we hun doel kort analyseren:

De tag <finalName> specificeert de naam van het resulterende buildbestand (jar, war, ear..) dat in de pakketfase wordt gemaakt . Als de parameter niet is opgegeven, wordt de standaardwaarde, artifactId-version , gebruikt .

Met de tag <sourceDirectory> kunt u de locatie van bronbestanden opnieuw definiëren. Bestanden bevinden zich standaard in de map ${basedir}/src/main/java , maar u kunt elke andere locatie opgeven.

De tag <outputDirectory> specificeert de map waar de compiler de compilatieresultaten zal opslaan - *.class -bestanden. De standaardwaarde is target/classes .

De <resources> -tag en de geneste <resource> -tags definiëren de locatie van de bronbestanden. Hulpbronbestanden worden tijdens het bouwen gewoon naar de map outputDirectory gekopieerd . De standaardwaarde van de bronmap is src/main/resources .

Het montageprofiel kan bijzonder flexibel worden geconfigureerd. We zullen het later in meer detail bekijken.