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.