Автоматизированное развёртывание Maven

В процессе разработки проекта процесс развертывания включает следующие шаги:

  • Зафиксируйте весь код проекта в SVN или репозитории кода и пометьте его тегом.
  • Скачайте полный исходный код из SVN.
  • Соберите приложение.
  • Сохраните собранные файлы WAR или EAR в общем сетевом расположении.
  • Получите файлы из сети и разверните их на боевом сайте.
  • Обновите документацию и обновите номер версии приложения.

Описание проблемы

Обычно описанный выше процесс разработки включает несколько команд. Одна команда может отвечать за коммит кода, другая — за сборку и т. д. Вполне вероятно, что любой шаг может пойти не так из-за ручных операций и участия нескольких команд. Например, на сетевой машине не обновляется старая версия, и затем команда развертывания повторно развертывает более раннюю версию сборки.

Решение

Добейтесь автоматизированного развертывания, объединив следующие подходы:

  • Используйте Maven для сборки и выпуска проектов
  • Используйте SubVersion, репозиторий исходного кода, для управления исходным кодом
  • Используйте программное обеспечение для управления удаленными репозиториями (Jfrog или Nexus) для управления двоичными файлами проекта.

Измените pom.xml проекта.

Мы будем использовать плагин Maven Release для создания автоматизированного процесса релиза.

Например, файл pom.xml для проекта bus-core-api выглядит следующим образом:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>bus-core-api</groupId> <artifactId>bus-core-api</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <scm> <url>http://www.svn.com</url> <connection>scm:svn:http://localhost:8080/svn/jrepo/trunk/ Framework</connection> <developerConnection>scm:svn:${username}/${password}@localhost:8080: common_core_api:1101:code</developerConnection> </scm> <distributionManagement> <repository> <id>Core-API-Java-Release</id> <name>Репозиторий релизов</name> <url>http://localhost:8081/nexus/content/repositories/ Core-Api-Release</url> </repository> </distributionManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.0-beta-9</version> <configuration> <useReleaseProfile>false</useReleaseProfile> <goals>deploy</goals> <scmCommentPrefix>[bus-core-api-release-checkin]-< /scmCommentPrefix> </configuration> </plugin> </плагины> </сборка> </проект>

Некоторые важные узлы элементов, обычно используемые в файле 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-файл в вашем репозитории.

Другие расширения