42 lines
2.2 KiB
Markdown
42 lines
2.2 KiB
Markdown
|
---
|
|||
|
aliases:
|
|||
|
tags:
|
|||
|
- зрелость/🌱
|
|||
|
date:
|
|||
|
- - 2023-11-20
|
|||
|
zero-link:
|
|||
|
- "[[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)
|