Maven - более мощный инструмент, который упрощает процесс сборки. В организационных проектах вы можете увидеть разные подмодули. У каждого подмодуля есть отдельный pom.xml, и есть агрегатор pom.xml, который объединяет все подмодули. В этой статье мы рассмотрим преимущества многомодульного проекта.

Эта статья позволяет обсудить, что такое многомодульный проект maven и как он делает вашу жизнь лучше.

Крупномасштабные проекты не постоянны. Каждый раз в проекте появлялись изменения. Иногда это будет добавление новой функции, а иногда - отзыв уже добавленной функции из проекта.

Если вы обрабатываете их в своем проекте с одним помпоном, то, когда проект вырастает, ваш помпон также становится очень большим, и помп становится очень чувствительным. Но если превратить проект в многомодульный, то это так удобно.

Совместно используемые модули, внешние проекты очень легко разместить в проекте. Также помните, что многомодульный проект очень удобен для настройки командой DevOps.

Почему многомодульный проект?

Основные преимущества создания многомодульных проектов:

  1. Для сборки всех проектов, включая подмодули, требуется одна команда.
  2. Maven всегда заботится о порядке сборки за вас. Вам не о чем беспокоиться. В большинстве случаев подмодули зависят от других модулей. Таким образом, порядок сборки имеет значение при создании проекта.
  3. Настроить многомодульный проект на вашем CI-сервере очень просто. Одна работа может справиться со всем.
  4. Может создавать и работать с одним модулем. Предположим, что в вашем многомодульном проекте разные команды работают над разными модулями. Вам не нужно беспокоиться о работе других, и вы можете работать, импортировав свой собственный подмодуль.

Как создать многомодульный проект Maven?

Для многомодульного проекта Maven в корневом каталоге есть pom.xml there, который является родительским pom, а его упаковка - pom. Из родительского модуля он ссылается на подмодуль.

Давайте подробно обсудим структуру родительского пома.

родительский пом

Основное различие между многомодульным родительским помпой и обычным помпом - это тип упаковки. Для многомодульного родительского помпа его тип упаковки становится "пом".

<packaging>pom</packaging>

Также в родительском pom это относится к подмодулям с <submodule> tag.

<modules>
  <module>email-service</module>
  <module>frontend</module>
  <module>data-service</module>
 </modules>

Подмодуль pom

В подмодуле pom.xml главное изменение заключается в том, что он ссылается на родительский pom с помощью тега parent.

<parent>
  <groupId>com.lici.maven</groupId>
  <artifactId>maven-module</artifactId>
  <version>0.0.1-SNAPSHOT</version>
 </parent>

Какие дополнительные преимущества у родительского помпа?

Основное использование родительского pom - это передача деталей подмодулю. особенно информацию о свойствах, такую ​​как версии, детали артефактов и т. д. Эта информация одинакова для всех подмодулей, поэтому нет необходимости вводить подмодули повторно. Просто объявите свойства в родительском элементе и можете ссылаться на эти свойства, используя символ ${}.

Еще одно преимущество родительского pom заключается в том, что вы можете определять общие зависимости от dependencyManagement tag и ссылаться на эти зависимости на подмодули без упоминания версии. Это помогает избежать проблем, связанных с конфликтом версий.

Как создать образец многомодульного проекта Maven?

Давайте перейдем к созданию здесь примерного многомодульного проекта. На самом деле это просто консолидация шагов, которые мы обсуждали выше.

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

Затем мы можем создать подмодули внутри родительского проекта и связанных с ним poms. Итак, в нашем проекте есть 3 подмодуля, каждый модуль pom.xml выглядит следующим образом.

Здесь, в дочернем pom внешнего интерфейса, это относится к другим дочерним модулям, почтовым сервисам и сервисам данных.

Наконец, давайте выполним сборку из родительского файла pom. Здесь вы можете увидеть, что все сборки подмодулей выполняются как часть выполнения родительского pom.

Здесь, при создании проекта, сам maven понимает, что ссылается на data-service и email-service из модуля frontend. Таким образом, он сам будет управлять порядком сборки. Нам не нужно передавать дополнительную информацию о порядке сборки.

Это основы многомодульного проекта с использованием maven. Надеюсь, вам понравилась эта статья.