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 в своем репозитории.