Какой у вас опыт работы с Apache Maven?

«Какой у вас опыт работы с Apache Maven?» — вопрос из категории DevOps, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, есть практический опыт использования Apache Maven.

Основные области применения:

  • Управление зависимостями: Автоматическое разрешение и загрузка библиотек из центральных и корпоративных репозиториев.
  • Сборка проектов: Стандартизированный жизненный цикл сборки (clean, compile, test, package, install, deploy).
  • Конфигурация проекта: Работа с POM-файлами (pom.xml) для описания структуры проекта, зависимостей и плагинов.

Пример базового pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>demo-app</artifactId>
    <version>1.0.0</version>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.3.0</version>
        </dependency>
    </dependencies>
</project>

Дополнительный опыт:

  • Создание и управление многомодульными проектами (parent и child POM).
  • Настройка плагинов для компиляции (maven-compiler-plugin), запуска тестов (maven-surefire-plugin), создания исполняемых JAR (maven-shade-plugin).
  • Использование профилей для конфигураций под разные среды (dev, prod).
  • Интеграция с CI/CD системами (Jenkins, GitHub Actions) для автоматизации сборки.