← Назад к вопросам
Что делает команда deploy в maven?
1.2 Junior🔥 171 комментариев
#Docker, Kubernetes и DevOps#Основы Java
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Maven Deploy: команда развёртывания артефактов
Команда mvn deploy в Maven публикует собранный артефакт (JAR, WAR, etc.) на удалённый репозиторий. Это критический инструмент для распространения библиотек и компонентов.
1. Основное действие
mvn deploy
Выполняет полный жизненный цикл до deploy:
- validate (проверка)
- compile (компиляция)
- test (тестирование)
- package (упаковка)
- verify (проверка)
- install (локальный репозиторий)
- deploy (удалённый репозиторий)
2. Что загружается
- my-library-1.0.0.jar (скомпилированный архив)
- my-library-1.0.0.pom (дескриптор проекта)
- my-library-1.0.0-sources.jar (исходный код)
- my-library-1.0.0-javadoc.jar (документация)
- checksum файлы (md5, sha1, sha256)
3. Конфигурация в pom.xml
<distributionManagement>
<repository>
<id>releases</id>
<url>https://repo.example.com/repository/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>https://repo.example.com/repository/snapshots</url>
</snapshotRepository>
</distributionManagement>
4. Аутентификация в settings.xml
<servers>
<server>
<id>releases</id>
<username>your-username</username>
<password>your-password</password>
</server>
<server>
<id>snapshots</id>
<username>your-username</username>
<password>your-password</password>
</server>
</servers>
5. Release vs Snapshot версии
- 1.0.0 (release) - стабильная, в репозитории releases, не перезаписывается
- 1.0.0-SNAPSHOT (snapshot) - разработочная, в репозитории snapshots, может перезаписываться
6. Типичные используемые репозитории
- Maven Central Repository (публичный)
- Nexus Repository Manager (корпоративный)
- JFrog Artifactory (облачный)
- GitHub Packages
7. Отличие от install
- mvn install - загружает в локальный репозиторий (~/.m2/repository)
- mvn deploy - загружает на удалённый репозиторий (Nexus, Artifactory, etc.)
8. Процесс при успешном deploy
[INFO] Building jar: /path/to/my-library-1.0.0.jar
[INFO] --- maven-deploy-plugin:2.8.2:deploy ---
[INFO] Uploading: my-library-1.0.0.jar
[INFO] Uploaded: my-library-1.0.0.jar
[INFO] Uploading: my-library-1.0.0.pom
[INFO] Uploaded: my-library-1.0.0.pom
[INFO] BUILD SUCCESS
9. Управление версиями и release
mvn release:prepare # Подготовить release
mvn release:perform # Выполнить (включает deploy)
Это автоматически:
- Проверяет нет ли uncommitted изменений
- Увеличивает версию
- Создаёт tag в системе контроля версий
- Выполняет deploy
10. Частые ошибки
- No distributionManagement element found - репозиторий не определён в pom.xml
- 401 Unauthorized - неверные credentials в settings.xml
- 403 Forbidden - попытка перезаписать release версию
- BUILD FAILURE - тесты не прошли, deploy не выполнится
Вывод: mvn deploy публикует артефакты на удалённый репозиторий для распространения библиотек в команде или публичных хранилищах. Требует конфигурации репозитория и аутентификации.