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 .
maven-project/src/site
— документация сайта, созданная с помощьюплагина Maven Site Plugin .
maven-project/src/assembly
— конфигурация сборки для упаковки бинарных файлов
4. Каталог src/main
Как видно из названия, src/main
— самый важный каталог проекта Maven. Здесь должно присутствовать все, что должно быть частью артефакта, будь то кувшин
или война
.
Его подкаталоги:
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 .