Стандартная структура каталогов Apache Maven

Стандартное расположение каталогов Apache Maven

1. Вступление

Apache Maven - один из самых популярных инструментов сборки для проектов Java. Помимо простой децентрализации зависимостей и репозиториев, продвижение единой структуры каталогов между проектами также является одним из ее важных аспектов.

В этой быстрой статье мы рассмотрим стандартную структуру каталогов типичного проекта Maven.

2. Макет каталога

Типичный проект Maven имеет файлpom.xml и структуру каталогов, основанную на определенных соглашениях:

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

Макет каталога по умолчанию может быть переопределен с использованием дескрипторов проекта, но это редко и не рекомендуется.

В этой статье мы расскажем подробнее о каждом стандартном файле и подкаталоге.

3. Корневой каталог

Этот каталог является корнем каждого проекта Maven.

Давайте подробнее рассмотрим стандартные файлы и подкаталоги, которые обычно находятся в корневом каталоге:

  • maven-project/pom.xml - определяет зависимости и модули, необходимые во время жизненного цикла сборки проекта Maven.

  • maven-project/LICENSE.txt - лицензионная информация проекта

  • maven-project/README.txt - резюме проекта

  • maven-project/NOTICE.txt - информация о сторонних библиотеках, используемых в проекте

  • maven-project/src/main - содержит исходный код и ресурсы, которые становятся частью артефакта

  • maven-project/src/test - содержит весь тестовый код и ресурсы

  • maven-project/src/it - обычно зарезервировано для интеграционных тестов, используемыхMaven Failsafe Plugin

  • maven-project/src/site - документация сайта, созданная с использованиемMaven Site Plugin

  • maven-project/src/assembly - конфигурация сборки для упаковки двоичных файлов

4. Каталогsrc/main

Как видно из названия,src/main - это самый важный каталог проекта Maven. Здесь должно присутствовать все, что должно быть частью артефакта, будь тоjar илиwar.

Его подкаталоги:

  • src/main/java - исходный код Java для артефакта

  • src/main/resources - файлы конфигурации и другие файлы, такие как файлыi18n, файлы конфигурации для каждой среды и конфигурации XML __

  • src/main/webapp - для веб-приложений, содержит такие ресурсы, как JavaScript, CSS, HTML-файлы, шаблоны просмотра и изображения.

  • src/main/filters - содержит файлы, которые вводят значения в свойства конфигурации в папке ресурсов на этапе сборки

5. Каталогsrc/test __

Каталогsrc/test - это место, где находятся тесты каждого компонента в приложении.

Обратите внимание, что ни один из этих каталогов или файлов не станет частью артефакта. Посмотрим на его подкаталоги:

  • src/test/java - исходный код Java для тестов

  • src/test/resources - файлы конфигурации и другие, используемые тестами

  • src/test/filters - содержит файлы, которые вводят значения в свойства конфигурации в папке ресурсов на этапе тестирования

6. Заключение

В этой статье мы рассмотрели стандартную структуру каталогов для проекта Apache Maven.

Несколько примеров структур проекта Maven можно найти вGitHub project.