Vista generale del file pom

La struttura del progetto è descritta nel file pom.xml, che deve trovarsi nella cartella principale del progetto. Il contenuto del file di progetto è simile al seguente:

<project>
        <!—Descrizione del progetto corrente -->
        <groupId>...</groupId>
        <artifactId>...</artifactId>
        <packaging>...</packaging>
        <version>... </ version>


        <properties>
            <!-- Sezione Proprietà -->
        </properties>

        <repositories>
            <!-- Sezione Repositories -->
        </repositories>


        <dependencies>
            <!-- Sezione Dipendenze -->
        </ dependencies>

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

Non tutte le sezioni possono essere presenti nella descrizione pom.xml. Quindi le sezioni delle proprietà e dei repository spesso non vengono utilizzate. I parametri descrittivi del progetto corrente sono obbligatori . Parleremo ora dell'ultima sezione.

sezione costruire

La sezione build è facoltativa : Maven può creare un progetto senza di essa. Ma se vuoi organizzare l'assemblaggio di un progetto più o meno complesso, ti tornerà utile capire come funziona tutto lì.

Diamo un'occhiata a un semplice esempio:

  <build>
        <finalName>nomeprogetto</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>

Questa sezione contiene informazioni di base sulla creazione: dove si trovano i file Java, i file delle risorse, quali plug-in vengono utilizzati, dove inserire il progetto compilato.

Ci sono quattro tag principali:

  • <nomefinale>
  • <directoryorigine>
  • <directory di output>
  • <risorse>

Analizziamo brevemente il loro scopo:

Il tag <finalName> specifica il nome del file di build risultante (jar, war, ear..) che viene creato nella fase del pacchetto . Se il parametro non è specificato, viene utilizzato il valore predefinito, artifactId-version .

Il tag <sourceDirectory> consente di ridefinire la posizione dei file di origine. Per impostazione predefinita, i file si trovano nella directory ${basedir}/src/main/java , ma puoi specificare qualsiasi altra posizione.

Il tag <outputDirectory> specifica la directory in cui il compilatore salverà i risultati della compilazione: i file *.class . Il valore predefinito è target/classes .

Il tag <resources> ei relativi tag <resource> nidificati definiscono la posizione dei file di risorse. I file di risorse vengono semplicemente copiati nella directory outputDirectory durante la creazione di . Il valore predefinito della directory delle risorse è src/main/resources .

La sezione di montaggio può essere configurata in modo particolarmente flessibile. Lo esamineremo più in dettaglio un po 'più tardi.