digital-garden/dev/java/Параллельная сборка модулей в Maven.md
Struchkov Mark d0de9bc884
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
Исправление форматирования
2024-09-17 21:10:50 +03:00

52 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
aliases:
tags:
- maturity/🌱
date:
- - 2023-11-20
zero-link:
- "[[../../meta/zero/00 Maven|00 Maven]]"
parents:
linked:
---
Небольшая хитрость, которая может ускорить сборку многомодульного maven проекта. Это параллельная сборка модулей.
```shell
mvn -T 1C clean install
```
1C означате использовать 1 поток на 1 ядро процессора
Но есть одно условие. Ваш проект должен содержать модули, которые не зависят друг от друга последовательно.
Объясню на примере проекта, который состоит из 18 модулей. Оранжевыми прямоугольники я выделил модули, которые могут собираться параллельно, так как они не зависят друг от друга.
![400](../../meta/files/images/Pasted%20image%2020231120092703.png)
По факту эти группы модулей зависят только друг от друга. Сначала собирается группа `domain`, от нее зависит группа `context`, потом core и так далее. Без `context` не собрать `core`, думаю суть понятна. Но вот модули core не зависят друг от друга, и могут собираться параллельно.
Для примера вот время сборки в последовательном режиме:
![](../../meta/files/images/Pasted%20image%2020231120092720.png)
А вот в параллельном:
![](../../meta/files/images/Pasted%20image%2020231120092732.png)
Выигрыш почти в два раза.
И на последок, вот как можно настроить этот параметр в Idea, чтобы не приходилось запускать сборку из консоли каждый раз. Эту настройку нужно делать в каждом проекте, она не глобальная.
![](../../meta/files/images/Pasted%20image%2020231120092753.png)
***
## Мета информация
**Область**:: [[../../meta/zero/00 Maven|00 Maven]]
**Родитель**::
**Источник**::
**Автор**::
**Создана**:: [[2023-11-20]]
### Дополнительные материалы
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->