Где располагаются файлы конфигурации Maven?

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

Ответ

Конфигурация Maven определяется иерархически, от общих настроек к специфичным для проекта.

1. Глобальные настройки (settings.xml):

  • Расположение: ${MAVEN_HOME}/conf/settings.xml
  • Назначение: Настройки для всех пользователей и проектов на данном компьютере (например, корпоративные прокси, зеркала репозиториев).

2. Локальные настройки пользователя (settings.xml):

  • Расположение: ~/.m2/settings.xml (папка .m2 в домашней директории пользователя).
  • Назначение: Переопределяет глобальные настройки. Здесь хранятся персональные данные: серверные учетные данные (логины/пароли), активный профиль, путь к локальному репозиторию.

3. Конфигурация проекта (pom.xml):

  • Расположение: Корневая директория проекта.
  • Назначение: Специфичные для проекта зависимости, плагины, свойства и цели сборки.

Приоритет: Настройки проекта (pom.xml) > Локальные настройки пользователя > Глобальные настройки.

Пример ключевых элементов settings.xml:

<settings>
  <localRepository>/opt/custom_m2_repo</localRepository> <!-- Кастомный путь к локальному репо -->
  <mirrors>
    <mirror>
      <id>corporate-mirror</id>
      <url>https://artifactory.company.com/repo</url>
      <mirrorOf>central</mirrorOf> <!-- Заменяет Maven Central -->
    </mirror>
  </mirrors>
</settings>