Visão geral do arquivo pom

A estrutura do projeto está descrita no arquivo pom.xml, que deve estar localizado na pasta raiz do projeto. O conteúdo do arquivo de projeto se parece com isso:

<project>
        <!—Descrição do projeto atual -->
        <groupId>...</groupId>
        <artifactId>...</artifactId>
        <packaging>...</packaging>
        <version>... </ version>


        <properties>
            <!-- Seção de propriedades -->
        </properties>

        <repositories>
            <!-- Seção de repositórios -->
        </repositories>


        <dependencies>
            <!-- Seção de dependências -->
        </ dependencies>

        <build>
            <!-- Seção de compilação -->
        </build>
</project>

Nem todas as seções podem estar presentes na descrição do pom.xml. Portanto, as seções de propriedades e repositórios geralmente não são usadas. Os parâmetros de descrição do projeto atual são obrigatórios . Falaremos sobre a última seção agora.

seção de construção

A seção de compilação é opcional - o Maven pode criar um projeto sem ela. Mas se você deseja configurar a montagem de um projeto mais ou menos complexo, será útil entender como tudo funciona lá.

Vejamos um exemplo simples:

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

Esta seção contém informações básicas sobre construção: onde os arquivos Java estão localizados, arquivos de recursos, quais plugins são usados, onde colocar o projeto construído.

Existem quatro tags principais:

  • <nomefinal>
  • <sourceDirectory>
  • <diretório de saída>
  • <recursos>

Vamos analisar brevemente sua finalidade:

A tag <finalName> especifica o nome do arquivo de compilação resultante (jar, war, ear..) que é criado na fase de pacote . Se o parâmetro não for especificado, o valor padrão, artefatoId-version , será usado .

A tag <sourceDirectory> permite redefinir a localização dos arquivos de origem. Por padrão, os arquivos estão localizados no diretório ${basedir}/src/main/java , mas você pode especificar qualquer outro local.

A tag <outputDirectory> especifica o diretório onde o compilador salvará os resultados da compilação - arquivos *.class . O valor padrão é target/classes .

A tag <resources> e suas tags <resource> aninhadas definem a localização dos arquivos de recursos. Os arquivos de recursos são simplesmente copiados para o diretório outputDirectory ao compilar arquivos . O valor padrão do diretório de recursos é src/main/resources .

A seção de montagem pode ser configurada de forma particularmente flexível. Veremos isso com mais detalhes um pouco mais tarde.