Layout de diretório padrão do Apache Maven

Layout de diretório padrão do Apache Maven

1. Introdução

O Apache Maven é uma das ferramentas de construção mais populares para projetos Java. Além de descentralizar dependências e repositórios, promover uma estrutura de diretórios uniforme entre os projetos também é um dos aspectos importantes.

Neste artigo rápido, exploraremos o layout de diretório padrão de um projeto Maven típico.

2. Layout do diretório

Um projeto Maven típico tem um arquivopom.xmle uma estrutura de diretório baseada em convenções definidas:

└───maven-project
    ├───pom.xml
    ├───README.txt
    ├───NOTICE.txt
    ├───LICENSE.txt
    └───src
        ├───main
        │   ├───java
        │   ├───resources
        │   ├───filters
        │   └───webapp
        ├───test
        │   ├───java
        │   ├───resources
        │   └───filters
        ├───it
        ├───site
        └───assembly

O layout do diretório padrão pode ser substituído usando descritores de projeto, mas isso é incomum e desencorajado.

Prosseguindo neste artigo, descobriremos mais detalhes sobre cada arquivo e subdiretório padrão.

3. O diretório raiz

Esse diretório serve como raiz de todo projeto Maven.

Vamos dar uma olhada mais de perto nos arquivos e subdiretórios padrão que são normalmente encontrados na raiz:

  • maven-project/pom.xml - define dependências e módulos necessários durante o ciclo de vida de construção de um projeto Maven

  • maven-project/LICENSE.txt - informações de licenciamento do projeto

  • maven-project/README.txt - resumo do projeto

  • maven-project/NOTICE.txt - informações sobre bibliotecas de terceiros usadas no projeto

  • maven-project/src/main - contém código-fonte e recursos que se tornam parte do artefato

  • maven-project/src/test - contém todo o código de teste e recursos

  • maven-project/src/it - normalmente reservado para testes de integração usados ​​peloMaven Failsafe Plugin

  • maven-project/src/site - documentação do site criada usando oMaven Site Plugin

  • maven-project/src/assembly - configuração de montagem para pacotes binários

4. O diretóriosrc/main

Como o nome indica,src/main é o diretório mais importante de um projeto Maven. Qualquer coisa que deveria fazer parte de um artefato, seja ajar ouwar, deve estar presente aqui.

Seus subdiretórios são:

  • src/main/java - código-fonte Java para o artefato

  • src/main/resources - arquivos de configuração e outros, como arquivosi18n, arquivos de configuração por ambiente e configurações XML __

  • src/main/webapp - para aplicativos da web, contém recursos como JavaScript, CSS, arquivos HTML, modelos de visualização e imagens

  • src/main/filters - contém arquivos que injetam valores nas propriedades de configuração na pasta de recursos durante a fase de construção

5. O diretóriosrc/test __

O diretóriosrc/test é o local onde residem os testes de cada componente do aplicativo.

Observe que nenhum desses diretórios ou arquivos se tornará parte do artefato. Vamos ver seus subdiretórios:

  • src/test/java - código-fonte Java para testes

  • src/test/resources - arquivos de configuração e outros usados ​​por testes

  • src/test/filters - contém arquivos que injetam valores nas propriedades de configuração na pasta de recursos durante a fase de teste

6. Conclusão

Neste artigo, vimos o layout de diretório padrão para um projeto Apache Maven.

Vários exemplos de estruturas de projeto Maven podem ser encontrados emGitHub project.