Что делает фаза deploy в Maven?

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

Ответ

Фаза deploy — это последняя фаза стандартного жизненного цикла Maven. Её цель — развернуть (скопировать) финальный артефакт сборки (JAR, WAR, POM) и связанные метаданные в удаленный репозиторий (например, Nexus или Artifactory), делая его доступным для других разработчиков и процессов.

Как это работает:

  1. Maven выполняет все предыдущие фазы жизненного цикла (validate, compile, test, package, verify, install).
  2. Копирует артефакты из локального репозитория в удаленный, указанный в секции <distributionManagement> файла pom.xml.

Конфигурация (пример в pom.xml):

<distributionManagement>
    <repository>
        <id>company-releases</id>
        <name>Company Release Repository</name>
        <url>https://nexus.company.com/repository/maven-releases/</url>
    </repository>
</distributionManagement>

Запуск:

mvn deploy

Ключевые требования:

  • Корректная настройка <distributionManagement> в pom.xml.
  • Наличие учетных данных (логин/пароль или токен) для доступа к удаленному репозиторию в файле ~/.m2/settings.xml.
  • Артефакт должен иметь уникальную версию (не SNAPSHOT для release-репозитория).