JavaRush /Курси /Модуль 3. Java Professional /Розгортання проєкту за допомогою Maven

Розгортання проєкту за допомогою Maven

Модуль 3. Java Professional
Рівень 2 , Лекція 4
Відкрита

1. Використовуємо maven-deploy-plugin

Ще одна цікава тема — автоматичний deploy зібраного пакета. Припустимо, ми зібрали власну бібліотеку за допомогою Maven. Як нам автоматично викласти її до локального, корпоративного чи центрального Maven-репозиторію?

Для цього у Maven є спеціальний плагін maven-deploy-plugin. Приклад:

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>2.5</version>
    	<configuration> <file>${project.build.directory}\${project.artifactId}-src.zip</file>
          <url>${project.distributionManagement.repository.url}</url> <repositoryId>${project.distributionManagement.repository.id}</repositoryId>
          <groupId>${project.groupId}</groupId> <artifactId>${project.artifactId}</artifactId> <version>${project.version}</version>
      	  <packaging>zip</packaging> <pomFile>pom.xml</pomFile>
    	</configuration>
  	</plugin>

З цими налаштуваннями ти можеш викласти зібрану бібліотеку до Maven-репозиторію як валідний пакет. Докладно розбирати цей процес ми не будемо, але швиденько поглянемо, що відбувається:

Тег file вказує файл, який буде відправлено до репозиторію Maven як нову бібліотеку.

Тег url – шлях до репозиторію Maven (локальний/корпоративний/…).

Тег repositoryId вказує ідентифікатор репозиторію, до якого проводитиметься депллой.

Теги groupId, artifactId, version встановлюють стандартну ідентифікацію пакета в репозиторії Maven. Саме за цими трьома параметрами можна однозначно ідентифікувати бібліотеку.

Тег packaging використовується для того, щоб результат надсилався одним zip-файлом. Якщо його не вказати, буде один jar-файл, навіть якщо у вас було їх кілька.

Тег pomFile є опціональним і дозволяє надіслати до репозиторію інший pom.xml, який не містить прихованих або службових даних.

2. Розгортання вебпрограми в Tomcat за допомогою Maven

Найпопулярніший вебсервер для вебзастосунків на Java — це Apache Tomcat. І звісно ж, за допомогою Maven можна деплоїти war-файли прямо до локального або навіть віддаленого Tomcat-сервера.

Установлювати і налаштовувати Tomcat ми навчимося якось іншим разом. Сьогодні торкнемося лише теми автоматичного деплою нашого вебзастосунку.

Крок перший. Ми повинні дати доступ Maven'у до Tomcat-сервера. Для цього відкриваємо файл conf/tomcat-users.xml в директорії, де розпакований Apache Tomcat, і додаємо ролі manager-gui та manager-script:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <user username="admin" password="admin" roles="manager-gui,manager-script" />
</tomcat-users>

Крок другий. Дозволяємо доступ Maven до Tomcat. Для цього відкриваємо файл $MAVEN_HOME/conf/settings.xml та додаємо сервер:

<?xml version="1.0" encoding="UTF-8"?>
<settings ...>
  <servers>
	<server> <id>TomcatServer</id> <username>admin</username> <password>admin</password> </server>
  </servers>
</settings>

Крок третій. Додаємо спеціальний плагін для автоматизованого деплою нашої програми в Apache Tomcat. Плагін називається tomcat7-maven-plugin. До речі, його створено не розробниками Maven, а розробниками Tomcat, про що можна здогадатися з імені.

	<build>
    	<plugins>
        	<plugin>
                <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration>
                    <url>http://localhost:8080/manager/text</url>
                    <server>TomcatServer</server>
                	<path>/simpleProject</path>
            	</configuration>
        	</plugin>
    	</plugins>
	</build>

У розділі configuration вказуємо:

  • url - адресу, де запущено Tomcat, і шлях до manager/text
  • server - ID сервера з файлу settings.xml
  • path — адресу, за якою буде доступна програма, що розгортається.

Команди для керування деплоєм:

mvn tomcat7:deploy Виконати деплой програми в Tomcat
mvn tomcat7:undeploy Видалити програму з Tomcat
mvn tomcat7:redeploy Передати програму

3. Деплой за допомогою плагіна Cargo Plugin

Ще один корисний та універсальний плагін для деплою вебзастосунків – Cargo Plugin. Він може працювати з різними типами вебсерверів. Ось як зробити деплой за його допомогою в Apache Tomcat:

<build>
    <plugins>
    	<plugin>
            <groupId>org.codehaus.cargo</groupId> <artifactId>cargo-maven2-plugin</artifactId> <version>1.9.10</version> <configuration> <container>
                	<containerId>tomcat8x</containerId>
                    <type>installed</type> <home>Insert absolute path to tomcat 7 installation</home>
            	</container> <configuration>
                    <type>existing</type> <home>Insert absolute path to tomcat 7 installation</home>
            	</configuration> </configuration>
   	    </plugin>
    </plugins>
</build>

Щоб встановити вебпрограму до локального Tomcat, потрібно виконати такі команди:

mvn install
mvn cargo:deploy

Якщо ми хочемо виконати деплой на віддалений вебсервер, доведеться налаштувати права доступу до цього серверу. Для цього їх потрібно прописати в pom.xml:

<configuration>
	<container> <containerId>tomcat8x</containerId> <type>remote</type> </container>
	<configuration> <type>runtime</type> <properties>
            <cargo.remote.username>admin</cargo.remote.username> <cargo.remote.password>admin</cargo.remote.password> <cargo.tomcat.manager.url>http://localhost:8080/manager/text</cargo.tomcat.manager.url>
    	</properties> </configuration> </configuration>

4. Деплой за допомогою IntelliJ IDEA

Intellij IDEA робить всю роботу сама, потрібен лише встановлений Tomcat.

Крок перший. Створюємо локальну конфігурацію Tomcat:

Крок другий. Обираємо локальний Tomcat:

Крок третій. Конфігуруємо Tomcat:

Крок четвертий. Додаємо шлях до папки Tomcat.

Крок п'ятий. Додаємо наш проєкт як артефакт Tomcat.

Для цього переходимо на вкладку Deployment і праворуч натискаємо кнопку +.

От і все.

До речі, якщо тобі потрібно деплоїти на віддалений сервер, просто обери в другому кроці Remote Tomcat.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ