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

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

  • Зарегистрируйте код из всего текущего проекта в 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

SCM

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

2

Repositories

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

3

Plugin

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

Подключаемый модуль выпуска Maven

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

mvn release:clean

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

mvn release:rollback

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

mvn release:prepare

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

  • Проверяет наличие незафиксированных локальных изменений.

  • Гарантирует отсутствие зависимостей 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 в своем репозитории.