programing

여러 Gradle "spring-boot" 플러그인 "bootRun" 작업을 병렬로 시작합니다.

oldcodes 2023. 6. 23. 22:24
반응형

여러 Gradle "spring-boot" 플러그인 "bootRun" 작업을 병렬로 시작합니다.

Gradle을 사용하여 구축된 다중 프로젝트 Spring Boot 애플리케이션이 있습니다.제가 하려는 것은 다양한 것들을 실행하는 것입니다.subprojects스프링 부트 사용bootRun다음을 통해 일부 "애드혹" 테스트를 수행하는 명령줄의 작업gradle bootRun하지만, 각 데몬은 순차적으로 시작하고 멈추는 것처럼 보입니다.모든 부트 데몬을 사용하여 병렬로 실행할 수 있는 방법이 있습니까?spring-boot플러그인?

어떤 조언이든 매우 감사하겠습니다 :)

독립 프로젝트의 작업은 다음을 사용하여 병렬로 실행할 수 있습니다.--parallel깃발

다중 프로젝트 빌드를 병렬로 실행하려면 사용자가 명령줄 스위치를 통해 프로젝트를 병렬로 실행할 것임을 선언해야 합니다.

--parallel
    \\ Tells Gradle to execute decoupled projects in parallel. Gradle will attempt to determine the optimal number of executors to use.
--max-workers=4
    \\ Tells Gradle to execute decoupled projects in parallel, using the specified number of workers. The default is the number of processors.

Gradle Daemon과 마찬가지로 사용자별 및 프로젝트별로 병렬 실행을 활성화/구성할 수 있어야 합니다.이 작업은 에서 설정된 빌드 환경 속성을 통해 수행할 수 있습니다.gradle.properties:

org.gradle.parallel: When set to `true`, Gradle will execute with the parallel executer

org.gradle.workers.max: Specify the maximum number of workers to use for parallel execution. This property does not in itself enable parallel execution,
                        but the value will be used whether Gradle is executed with `--parallel` or `org.gradle.parallel=true`.

리소스 링크:

전체 병렬 실행 예제는 다음과 같습니다. https://github.com/camiloribeiro/cucumber-gradle-parallel/blob/master/build.gradle#L50

병렬 실행은 어떻게 작동합니까?

먼저 Gradle에게 병렬 모드를 사용하라고 말해야 합니다.명령줄 인수(부록 D, Gradle 명령줄)를 사용하거나 빌드 환경을 구성할 수 있습니다(섹션 12.1, "gradle.properties를 통한 빌드 환경 구성").사용자가 특정 개수의 병렬 스레드를 제공하지 않는 한 Gradle은 사용 가능한 CPU 코어를 기준으로 올바른 개수를 선택하려고 시도합니다.모든 병렬 작업자는 작업을 실행하는 동안 지정된 프로젝트를 독점적으로 소유합니다.즉, 동일한 프로젝트의 두 작업이 병렬로 실행되지 않습니다.따라서 다중 프로젝트 빌드만 병렬 실행을 활용할 수 있습니다.작업 종속성은 완전히 지원되며 병렬 작업자가 먼저 업스트림 작업을 실행하기 시작합니다.순차 실행에서 알려진 분리된 작업의 알파벳 순서 스케줄링은 실제로 병렬 모드에서 작동하지 않습니다.순서 지정 문제를 방지하려면 작업 종속성이 올바르게 선언되었는지 확인해야 합니다.

리소스 링크: https://docs.gradle.org/current/userguide/multi_project_builds.html

버전 3.5부터 Gradle은 병렬 작업자 상태를 인쇄할 수 있습니다.

<===========--> 90% EXECUTING
> :backend-service:bootRun
> :frontend-service:bootRun

언급URL : https://stackoverflow.com/questions/23621723/launch-multiple-gradle-spring-boot-plugin-bootrun-tasks-in-parallel

반응형