0Pricing
Java Academy · Урок

Структура проекта 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 — локальная установка не требуется.

Все уроки этого курса

  1. Структура проекта Maven
  2. Плагины и цели Maven
  3. Основы Gradle
  4. Выбор инструмента сборки
← Назад к Java Academy