Научная статья на тему 'СБОРКА МУЛЬТИ-МОДУЛЬНЫХ ПРОЕКТОВ С ПОМОЩЬЮ MAVEN'

СБОРКА МУЛЬТИ-МОДУЛЬНЫХ ПРОЕКТОВ С ПОМОЩЬЮ MAVEN Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
136
7
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
MAVEN / POM.XML / СБОРКА / АВТОМАТИЗАЦИЯ СБОРКИ / МУЛЬТИ-МОДУЛЬНОСТЬ / BUILD / BUILD AUTOMATIZATION / MULTIMODULARITY

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Иванов Н.Ю.

В статье анализируется использование сборки мульти-модульных проектов с помощью Maven. Приводятся плюсы использования инструмента сборки Maven в мульти-модульных проектах. Также демонстрируется пример использования мульти-модульности Maven.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Иванов Н.Ю.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

BUILD MULTI-MODULE PROJECTS WITH MAVEN

The article analyzes the use of the build of multi-modular projects using Maven. The advantages of using the Maven build tool in multi-module projects. Shows example of the use of Maven in multi-module project.

Текст научной работы на тему «СБОРКА МУЛЬТИ-МОДУЛЬНЫХ ПРОЕКТОВ С ПОМОЩЬЮ MAVEN»

УДК 00.1028

Иванов Н.Ю. студент

факультет информационных систем и технологий кафедра «Программного обеспечения и управление

в технических системах» Поволжский государственный университет телекоммуникаций и информатики

г. Самара

СБОРКА МУЛЬТИ-МОДУЛЬНЫХ ПРОЕКТОВ С ПОМОЩЬЮ

MAVEN

Аннотация: В статье анализируется использование сборки мульти-модульных проектов с помощью Maven. Приводятся плюсы использования инструмента сборки Maven в мульти-модульных проектах. Также демонстрируется пример использования мульти-модульности Maven.

Ключевые слова: Maven, pom.xml, сборка, автоматизация сборки, мульти-модульность.

Ivanov N.Y. student

Facility of Information Systems and Technologies Department of Software and Management in Technical Systems Volga State University of Telecommunications and Informatics

Samara

BUILD MULTI-MODULE PROJECTS WITH MAVEN

Annotation: The article analyzes the use of the build of multi-modular projects using Maven. The advantages of using the Maven build tool in multimodule projects. Shows example of the use of Maven in multi-module project.

Keywords: Maven, pom.xml, build, build automatization, multi-modularity

Мультимодульный проект Maven построен с помощью POM аггрегатора, который управляет группами подмодулей. В большинстве случаем агрегатор находится в корневом каталоге проекта. Подмодули являются обычными проектами Maven.

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

по отдельности или писать скрипт, который будет компилировать код, запускать тесты и показывать результаты. Через определенное время к проекту добавится еще больше модулей и с текущей моделью сборки им станет сложнее управлять и поддерживать.

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

Поэтому, используя мультимодульность Maven, модули проекта можно собирать в одну команду, и, емли порядок имеет значение, его можно задать. Кроме того, можно из родительского pom.xml можно поделиться огромным количеством конфигурации с дочерними файлами конфигурации Maven.

Maven поддерживает наследование таким образов, что каждый pom.xml имеет неявный родительский pom.xml, который называется Super POM и находится в бинарных файлах Maven. Следовательно, есть возможность создать собственный pom.xml, который будет родительским в рамках проекта. Затем туда включается вся конфигурация с зависимостями. Подмодули - это обычные проекты Maven, который наследуются от родительского pom.xml. Наследование позволяет делиться конфигурацией родительского pom.xml. Однако, если необходимо собрать весь проект за один раз, то необходимо явно объявить подмодули в родительском pom.xml.

Можно рассмотреть пример сборки на тестовом проекте. Ниже представлен родительский pom.xml проекта, в котором объявлены дочерние модули и тип упаковки._

<modelVersion:>4.. 0. 0</modelVersion>

<groupld>com.sobachken</groupld> <artifactId>learningpro</artifactId:> <version>l.Q.Q-SNAPSHOT</version? <modules>

<module>learningpro-frontend</niodule> <module>learningpro-backend</module:>

AW/VWVWTVVWVWVV

</modules>

<packaging>pom</packaging:> <name>learningpro</name>

Далее приведен пример определения родительского pom.xml в дочерних модулях.

<artifactld:>learningprc-backend</artifactld:> < versions .0.1-SNAPSH0T</versions <name:>learningprQ-backend</nanie:>

_ «J1

™ <packaging>jar|</packaging> <parent>

<artifactId:>learningpro</artifactId:> <groupld>com.sobachkenc/grouplds < versions .0.0-SNAPSHOT</versions <relativePaths../pom.xnTU/relativePaths </parent>

<artifactId>learnirigpro-froiitend</artifactId:> <version:>0.0.1-SNAPSHOTS/version? cnaniesleamingprQ-frontendc/nanies

y.y.y.y.y., Ы I >...■...■...-...■. p

<parent>

<artifactId?learringpro</artifactId> <groupld>com.scbachkeri</groupld:> <versionsl.С.C-SNAPSHOT</versions <relativePaths. ./pom. xnil</relativePaths </parert>

После выполнения команды clean install на родительском pom.xml можно увидеть следующее._

[INFO] Reactor Build Order: [INFO]

[INFO] learningpro

[INFO] learningpro-frontend

[INFO] learningpro-backend [INFO]

[INFO] --------------------------------------------------------------------

[INFO] Building learningpro 1.0.0-SNAPSHOT

[INFO] --------------------------------------------------------------------

[INFO]

[INFO] — maven-clean-plugin:3.1.0¡clean (default-clean) 5) learningpro — [INFO]

Использованные источники:

1. Документация Maven [Электронный ресурс] URL: https://maven.apache.org/guides/index.html

i Надоели баннеры? Вы всегда можете отключить рекламу.