При разработке проекта обычно процесс развертывания состоит из следующих этапов:
-
Верните код из всего проекта в 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-файл в своем хранилище.