Структура проекта Maven
POM, жизненный цикл и зависимости
«Структура проекта Maven» — бесплатный урок Java Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 4 уроков всего.
Структура проекта Maven
Maven — это инструмент сборки и менеджер зависимостей, основанный на одном принципе: соглашение вместо конфигурации. Следуйте стандартной структуре, и большинство вещей будет работать практически без настройки. В этом уроке рассматриваются структура, POM и управление зависимостями.
Стандартная структура каталогов
Maven ожидает фиксированную структуру:
src/main/java— исходный код приложения.src/main/resources— ресурсы приложения.src/test/java— исходный код тестов.target/— результат сборки (создаётся автоматически).
POM
Сердце проекта Maven — это pom.xml, модель проекта. В XML объявляются координаты, зависимости, плагины и параметры сборки.
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
</project>Координаты: GAV
Каждый артефакт определяется с помощью groupId, artifactId и версии (GAV). Эти координаты однозначно определяют Ваш проект и каждую подключаемую зависимость.
Объявление зависимостей
Зависимости перечисляются внутри <dependencies>. Maven загружает их и транзитивные зависимости из репозиториев, таких как Maven Central, в локальный кэш.
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.0</version>
<scope>test</scope>
</dependency>
</dependencies>Области действия зависимостей
Область действия определяет, когда зависимость находится в пути классов:
- компиляция — везде (по умолчанию).
- предоставление — только при компиляции; во время выполнения зависимость предоставляет контейнер.
- выполнение — во время выполнения и тестирования, но не при компиляции.
- тестирование — только для компиляции и запуска тестов.
Транзитивные зависимости
Если A зависит от B, а B зависит от C, Maven автоматически предоставляет Вам C — это и есть транзитивность. При конфликте версий Maven разрешает его по ближайшему определению в дереве зависимостей.
Жизненный цикл сборки
Maven определяет упорядоченный жизненный цикл из фаз. Жизненный цикл по умолчанию включает следующие фазы (в указанном порядке): validate, compile, test, package, verify, install, deploy. Запуск фазы запускает также все предыдущие фазы.
Распространённые команды
mvn compile— скомпилировать основные исходные файлы.mvn test— запустить модульные тесты.mvn package— собрать JAR/WAR вtarget/.mvn install— скопировать артефакт в локальный репозиторий, чтобы его могли использовать другие проекты.
Локальный репозиторий
Загруженные артефакты кэшируются в ~/.m2/repository. При последующих сборках используется кэш, поэтому повторная загрузка не требуется. Команда mvn install помещает туда Ваш артефакт, чтобы от него могли зависеть соседние проекты.
Многомодульные проекты
Родительский POM с <packaging>pom</packaging> может перечислять дочерние <modules>. Maven собирает их в порядке зависимостей, позволяя большой системе совместно использовать конфигурацию и версии из одного места.
Проверьте себя
Проверьте, насколько Вы понимаете структуру Maven.
Повторение
Вы изучили основы Maven:
- Соглашение вместо конфигурации со стандартной структурой
src/main/java. - POM объявляет координаты GAV, зависимости и плагины.
- Области действия (компиляция, предоставление, выполнение, тестирование) управляют видимостью в пути классов.
- Зависимости являются транзитивными; конфликты разрешаются по ближайшему определению.
- Упорядоченный жизненный цикл означает, что запуск фазы запускает все предыдущие фазы.
Часто задаваемые вопросы
Урок «Структура проекта Maven» бесплатный?
Да — полный текст урока «Структура проекта Maven» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 4 уроков всего.
Чему я научусь в уроке «Структура проекта Maven»?
POM, жизненный цикл и зависимости Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Java Academy?
Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Структура проекта Maven»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Java Academy?
Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Структура проекта Maven
- Плагины и цели Maven
- Основы Gradle
- Выбор инструмента сборки