Стандартное расположение каталогов 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.