Учебники

Maven — Автоматизация развертывания

При разработке проекта обычно процесс развертывания состоит из следующих этапов:

  • Верните код из всего проекта в SVN (систему контроля версий) или в хранилище исходного кода и пометьте его.

  • Загрузите полный исходный код из SVN.

  • Создайте приложение.

  • Сохраните выходные данные сборки либо файл WAR, либо файл EAR в общем сетевом расположении.

  • Получите файл из сети и разверните файл на производственном сайте.

  • Обновлена ​​документация с указанием даты и обновленного номера версии приложения.

Верните код из всего проекта в SVN (систему контроля версий) или в хранилище исходного кода и пометьте его.

Загрузите полный исходный код из SVN.

Создайте приложение.

Сохраните выходные данные сборки либо файл WAR, либо файл EAR в общем сетевом расположении.

Получите файл из сети и разверните файл на производственном сайте.

Обновлена ​​документация с указанием даты и обновленного номера версии приложения.

Постановка задачи

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

Решение

Автоматизируйте процесс развертывания, сочетая следующее:

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

Обновление проекта POM.xml

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

Например: проект bus-core-api POM.xml.

<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>Release repository</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>
      </plugins>
   </build>
</project>

В Pom.xml ниже приведены важные элементы, которые мы использовали —

Sr.No. Элемент и описание
1

СКМ

Настраивает расположение SVN, откуда Maven будет проверять исходный код.

2

Хранилища

Место, где будет построен WAR / EAR / JAR или любой другой артефакт после успешной сборки кода.

3

Plugin

maven-release-plugin настроен для автоматизации процесса развертывания.

СКМ

Настраивает расположение SVN, откуда Maven будет проверять исходный код.

Хранилища

Место, где будет построен WAR / EAR / JAR или любой другой артефакт после успешной сборки кода.

Plugin

maven-release-plugin настроен для автоматизации процесса развертывания.

Плагин Maven Release

Maven выполняет следующие полезные задачи, используя maven-release-plugin .

mvn release:clean

Он очищает рабочее пространство в случае, если последний процесс выпуска не был успешным.

mvn release:rollback

Откатите изменения, внесенные в код и конфигурацию рабочей области, если последний процесс выпуска не был успешным.

mvn release:prepare

Выполняет несколько операций, например:

  • Проверяет, есть ли какие-либо незафиксированные локальные изменения или нет.

  • Гарантирует, что нет никаких SNAPSHOT-зависимостей.

  • Изменяет версию приложения и удаляет SNAPSHOT из версии, чтобы сделать релиз.

  • Обновите pom-файлы до SVN.

  • Запустите тестовые случаи.

  • Зафиксируйте измененные файлы POM.

  • Пометьте код в Subversion

  • Увеличьте номер версии и добавьте SNAPSHOT для будущего выпуска.

  • Зафиксируйте измененные файлы POM в SVN.

Проверяет, есть ли какие-либо незафиксированные локальные изменения или нет.

Гарантирует, что нет никаких SNAPSHOT-зависимостей.

Изменяет версию приложения и удаляет SNAPSHOT из версии, чтобы сделать релиз.

Обновите pom-файлы до SVN.

Запустите тестовые случаи.

Зафиксируйте измененные файлы POM.

Пометьте код в Subversion

Увеличьте номер версии и добавьте SNAPSHOT для будущего выпуска.

Зафиксируйте измененные файлы POM в SVN.

mvn release:perform

Проверяет код, используя ранее определенный тег, и запускает цель развертывания Maven, чтобы развернуть войну или встроенный артефакт в хранилище.

Давайте откроем командную консоль, перейдем в каталог C: \> MVN> bus-core-api и выполним следующую команду mvn .

>mvn release:prepare

Maven начнет строить проект. Как только сборка будет успешной, запустите следующую команду mvn .

>mvn release:perform

После успешной сборки вы можете проверить загруженный JAR-файл в своем хранилище.