digital-garden/knowledge/dev/java/Параллельная сборка модулей в Maven.md

42 lines
2.2 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:
- зрелость/🌱
date:
- - 2023-11-20
zero-link:
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
parents:
linked:
- "[[Maven]]"
article: https://struchkov.dev/blog/ru/parallel-building-modules-maven/
---
Небольшая хитрость, которая может ускорить сборку многомодульного maven проекта. Это параллельная сборка модулей.
```shell
mvn -T 1C clean install
```
1C ОЗНАЧАЕТ ИСПОЛЬЗОВАТЬ 1 ПОТОК НА 1 ЯДРО ПРОЦЕССОРА
Но есть одно условие. Ваш проект должен содержать модули, которые не зависят друг от друга последовательно.
Объясню на примере проекта, который состоит из 18 модулей. Оранжевыми прямоугольники я выделил модули, которые могут собираться параллельно, так как они не зависят друг от друга.
![](Pasted%20image%2020231120092703.png)
По факту эти группы модулей зависят только друг от друга. Сначала собирается группа `domain`, от нее зависит группа `context`, потом core и так далее. Без `context` не собрать `core`, думаю суть понятна. Но вот модули core не зависят друг от друга, и могут собираться параллельно.
Для примера вот время сборки в последовательном режиме:
![](Pasted%20image%2020231120092720.png)
А вот в параллельном:
![](Pasted%20image%2020231120092732.png)
Выигрыш почти в два раза.
И на последок, вот как можно настроить этот параметр в Idea, чтобы не приходилось запускать сборку из консоли каждый раз. Эту настройку нужно делать в каждом проекте, она не глобальная.
![](Pasted%20image%2020231120092753.png)