--- 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)