Автоматизированное развёртывание Maven
В процессе разработки проекта процесс развертывания включает следующие шаги:
- Зафиксируйте весь код проекта в SVN или репозитории кода и пометьте его тегом.
- Скачайте полный исходный код из SVN.
- Соберите приложение.
- Сохраните собранные файлы WAR или EAR в общем сетевом расположении.
- Получите файлы из сети и разверните их на боевом сайте.
- Обновите документацию и обновите номер версии приложения.
Описание проблемы
Обычно описанный выше процесс разработки включает несколько команд. Одна команда может отвечать за коммит кода, другая — за сборку и т. д. Вполне вероятно, что любой шаг может пойти не так из-за ручных операций и участия нескольких команд. Например, на сетевой машине не обновляется старая версия, и затем команда развертывания повторно развертывает более раннюю версию сборки.
Решение
Добейтесь автоматизированного развертывания, объединив следующие подходы:
- Используйте Maven для сборки и выпуска проектов
- Используйте SubVersion, репозиторий исходного кода, для управления исходным кодом
- Используйте программное обеспечение для управления удаленными репозиториями (Jfrog или Nexus) для управления двоичными файлами проекта.
Измените pom.xml проекта.
Мы будем использовать плагин Maven Release для создания автоматизированного процесса релиза.
Например, файл pom.xml для проекта bus-core-api выглядит следующим образом:
Некоторые важные узлы элементов, обычно используемые в файле pom.xml, показаны в таблице ниже:
| Узел элемента | Описание |
|---|---|
| SCM | Настройте путь SVN, из которого Maven будет извлекать код. |
| repository | Расположение собранных файлов WAR, EAR или JAR, или место хранения других артефактов, созданных после успешной сборки исходного кода. |
| Плагин | Настройте плагин maven-release-plugin для реализации процесса автоматического развертывания. |
Maven Release Plugin
Maven использует плагин maven-release-plugin для выполнения следующих задач.
mvn release:clean
Очистите рабочее пространство, чтобы обеспечить успешное выполнение последнего процесса релиза.
mvn release:rollback
Если предыдущий процесс релиза завершился неудачно, откатите изменённый код и конфигурацию рабочего пространства, чтобы обеспечить успешное выполнение процесса релиза.
mvn release:prepare
Выполните различные операции:
- Проверьте, есть ли локально незакоммиченные изменения
- Убедитесь в отсутствии snapshot-зависимостей
- Измените информацию о версии приложения для релиза
- Обновите POM-файлы в SVN
- Запустить тестовые примеры
- Зафиксируйте изменённые POM-файлы
- Создайте тег для кода в SVN
- Увеличьте номер версии и добавьте snapshot для будущих релизов
- Зафиксируйте изменённые POM-файлы в SVN
mvn release:perform
Переключите код на ранее помеченное тегом расположение, запустите цель Maven deploy для развёртывания WAR-файла или сборки соответствующих артефактов в репозиторий.
Откройте командный терминал, перейдите в каталог C:\ > MVN >bus-core-api, а затем выполните следующую команду mvn.
C:\MVN\bus-core-api>mvn release:prepare
Maven начинает сборку всего проекта. После успешной сборки можно выполнить следующую команду mvn.
C:\MVN\bus-core-api>mvn release:perform
После успешной сборки можно проверить, действует ли загруженный JAR-файл в вашем репозитории.
Другие расширения