Параллельная сборка модулей в Maven.md
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
2975edcaa0
commit
e942b17888
@ -23,13 +23,12 @@ sudo systemctl enable --now docker
|
||||
|
||||
Также установим docker-compose. Обращаю ваше внимание, что актуальным является Docker Compose V2, который в отличие от первой версии поставляется бинарными файлами.
|
||||
|
||||
[Актуальная версия docker-compose](https://github.com/docker/compose/releases/)
|
||||
|
||||
```shell
|
||||
mkdir -p ~/.docker/cli-plugins/
|
||||
curl -SL https://github.com/docker/compose/releases/download/v2.14.0/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
|
||||
chmod +x ~/.docker/cli-plugins/docker-compose
|
||||
```
|
||||
[Актуальная версия docker-compose](https://github.com/docker/compose/releases/)
|
||||
|
||||
> [!INFO]
|
||||
> Эта команда устанавливает Compose V2 для активного пользователя в каталог `$HOME`. Чтобы установить Docker Compose для всех пользователей вашей системы, замените `~/.docker/cli-plugins` на `/usr/local/lib/docker/cli-plugins`.
|
||||
|
@ -5,7 +5,7 @@ tags:
|
||||
- type/opinion
|
||||
date: 2024-09-06
|
||||
zero-link:
|
||||
- "[[../garden/ru/meta/zero/00 Java разработка|00 Java разработка]]"
|
||||
- "[[../../meta/zero/00 Java разработка|00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
---
|
||||
|
39
dev/java/Параллельная сборка модулей в Maven.md
Normal file
39
dev/java/Параллельная сборка модулей в Maven.md
Normal file
@ -0,0 +1,39 @@
|
||||
---
|
||||
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)
|
BIN
meta/files/images/Pasted image 20231120092703.png
Normal file
BIN
meta/files/images/Pasted image 20231120092703.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 182 KiB |
BIN
meta/files/images/Pasted image 20231120092720.png
Normal file
BIN
meta/files/images/Pasted image 20231120092720.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 40 KiB |
BIN
meta/files/images/Pasted image 20231120092732.png
Normal file
BIN
meta/files/images/Pasted image 20231120092732.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 49 KiB |
BIN
meta/files/images/Pasted image 20231120092753.png
Normal file
BIN
meta/files/images/Pasted image 20231120092753.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 607 KiB |
@ -7,7 +7,9 @@ permalink: dev/java
|
||||
title: Java разработка
|
||||
---
|
||||
- [Устройство Java](Устройство%20Java.md)
|
||||
- [00 Снипеты для Java](00%20Снипеты%20для%20Java.md)
|
||||
- [Снипеты для Java](00%20Снипеты%20для%20Java.md)
|
||||
- Системы сборки
|
||||
- [Maven](00%20Maven.md)
|
||||
- Фреймворки
|
||||
- [Quarkus](00%20Quarkus.md)
|
||||
- [SpringBoot](00%20SpringBoot.md)
|
||||
|
16
meta/zero/00 Maven.md
Normal file
16
meta/zero/00 Maven.md
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
tags:
|
||||
- type/zero-link
|
||||
- maturity/🌱
|
||||
aliases:
|
||||
- мавен
|
||||
- мавеном
|
||||
date: "[[2023-10-21]]"
|
||||
parents:
|
||||
- "[[Система сборки]]"
|
||||
linked:
|
||||
title: Maven
|
||||
---
|
||||
- [Параллельная сборка модулей в Maven](../../dev/java/Параллельная%20сборка%20модулей%20в%20Maven.md)
|
Loading…
Reference in New Issue
Block a user