Параллельная сборка модулей в 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. Обращаю ваше внимание, что актуальным является Docker Compose V2, который в отличие от первой версии поставляется бинарными файлами.
|
||||||
|
|
||||||
[Актуальная версия docker-compose](https://github.com/docker/compose/releases/)
|
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
mkdir -p ~/.docker/cli-plugins/
|
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
|
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
|
chmod +x ~/.docker/cli-plugins/docker-compose
|
||||||
```
|
```
|
||||||
|
[Актуальная версия docker-compose](https://github.com/docker/compose/releases/)
|
||||||
|
|
||||||
> [!INFO]
|
> [!INFO]
|
||||||
> Эта команда устанавливает Compose V2 для активного пользователя в каталог `$HOME`. Чтобы установить Docker Compose для всех пользователей вашей системы, замените `~/.docker/cli-plugins` на `/usr/local/lib/docker/cli-plugins`.
|
> Эта команда устанавливает Compose V2 для активного пользователя в каталог `$HOME`. Чтобы установить Docker Compose для всех пользователей вашей системы, замените `~/.docker/cli-plugins` на `/usr/local/lib/docker/cli-plugins`.
|
||||||
|
@ -5,7 +5,7 @@ tags:
|
|||||||
- type/opinion
|
- type/opinion
|
||||||
date: 2024-09-06
|
date: 2024-09-06
|
||||||
zero-link:
|
zero-link:
|
||||||
- "[[../garden/ru/meta/zero/00 Java разработка|00 Java разработка]]"
|
- "[[../../meta/zero/00 Java разработка|00 Java разработка]]"
|
||||||
parents:
|
parents:
|
||||||
linked:
|
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 разработка
|
title: Java разработка
|
||||||
---
|
---
|
||||||
- [Устройство Java](Устройство%20Java.md)
|
- [Устройство Java](Устройство%20Java.md)
|
||||||
- [00 Снипеты для Java](00%20Снипеты%20для%20Java.md)
|
- [Снипеты для Java](00%20Снипеты%20для%20Java.md)
|
||||||
|
- Системы сборки
|
||||||
|
- [Maven](00%20Maven.md)
|
||||||
- Фреймворки
|
- Фреймворки
|
||||||
- [Quarkus](00%20Quarkus.md)
|
- [Quarkus](00%20Quarkus.md)
|
||||||
- [SpringBoot](00%20SpringBoot.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