9. Reacting to Other Plugins
다른 플러그인이 적용되면 스프링 부트 플러그인은 프로젝트 구성을 다양하게 변경하여 반응한다. 이 섹션에서는 이러한 변경 사항에 대해 설명한다.
9.1. Reacting to the Java Plugin
그레이들의 java 플러그인이 프로젝트에 적용되면, 스프링 부트 플러그인은 다음을 수행한다:
- 프로젝트에 대해, 실행 가능한 fat jar을 생성하는 bootJar라 명명된
BootJar태스크를 생성한다. jar는 기본 소스 세트의 런타임 클래스 경로에 있는 모든 것을 포함한다. 클래스는BOOT-INF/classes에 패키지되고 jar는BOOT-INF/lib에 패키지된다. bootJar태스크에 의존하도록assemble태스크를 구성한다.- 아카이브 분류자(archive classifier) 컨벤션으로
plain을 사용하도록jar태스크를 구성한다. - 빌드팩을 사용하여 OCI 이미지를 생성하는
bootBuildImage라 명명된BootBuildImage태스크를 생성한다. - 애플리케이션을 실행하는 데 사용할 수 있는
bootRun이라 명명된BootRun태스크를 만든다. bootJar태스크에 의해 생성된 아티팩트를 포함하는bootArchives라 명명된 구성을 만든다.- 스프링 부트의 Devtools와 같이 개발 시에만 필요하고 실행 가능한 jar 및 war에 패키지하면 안 되는 의존성에 대해
developmentOnly라는 구성을 생성한다. productionRuntimeClasspath라는 구성을 만든다. 이는developmentOnly구성에만 나타나는 의존성을 뺀runtimeClasspath와 동일하다.UTF-8을 사용하도록 구성된 인코딩이 없는 모든JavaCompile태스크를 구성한다.-parameters컴파일러 인수를 사용하도록JavaCompile태스크를 구성한다.
9.2. Reacting to the Kotlin Plugin
kotlin 플러그인을 프로젝트에 적용할 때, 스프링 부트 플러그인: When Kotlin’s Gradle plugin is applied to a project, the Spring Boot plugin:
- 스프링 부트의 의존성 관리에 사용되는 코틀린 버전을 플러그인 버전과 일치시킨다. 이는 Kotlin 플러그인의 버전과 일치하는 값으로
kotlin.version프로퍼티를 설정하여 달성된다. -java-parameters컴파일러 인수를 사용하도록 모든KotlinCompile태스크를 구성한다.
9.3. Reacting to the War Plugin
그레이들 war 플러그인을 프로젝트에 적용할 때, 스프링 부트 플러그인:
- 프로젝트에 대해 실행 가능한 fat war을 생성하는,
bootWar라 명명된BootWar태스크를 생성한다. 표준 패키징 외에도,providedRuntime구성의 모든 항목은WEB-INF/lib-provided에 패키징된다. bootWar태스크에 의존하도록assemble태스크를 구성한다.- 아카이브 분류자 컨벤션으로
plain을 사용하도록war작업을 구성한다. bootWar태스크에서 생성된 아티팩트를 포함하도록bootArchives구성을 구성한다.
9.4. Reacting to the Dependency Management Plugin
io.spring.dependency-management 플러그인이 프로젝트에 적용되면, 스프링 부트 플러그인이 자동으로 spring-boot-dependencies bom을 가져온다.
9.5. Reacting to the Application Plugin
그레이들 application 플러그인이 프로젝트에 적용되면 스프링 부트 플러그인은 다음을 수행한다:
java -jar를 사용하여bootArchives구성에서 아티팩트 시작 스크립트를 생성하는bootStartScripts라 명명된CreateStartScripts태스크를 생성한다. 태스크는defaultJvmOpts프로퍼티 대한 컨벤션으로applicationDefaultJvmArgs프로퍼티를 사용하도록 구성된다.boot라는 이름의 새 배포를 만들고lib디렉토리의bootArchives구성에 아티팩트를 포함하고bin디렉토리의 시작 스크립트를 포함하도록 구성한다.mainClassName프로퍼티를main프로퍼티에 대한 컨벤션으로 사용하도록bootRun태스크를 구성한다.jvmArgs프로퍼티에 대한 컨벤션으로applicationDefaultJvmArgs프로퍼티를 사용하도록bootRun태스크를 구성한다.- 매니페스트(manifest)의
Start-Class항목에 대한 컨벤션으로mainClassName프로퍼티를 사용하도록bootJar태스크를 구성한다. - 매니페스트의
Start-Class항목에 대한 컨벤션으로mainClassName프로퍼티를 사용하도록bootWar태스크를 구성한다.
9.6. Reacting to the Maven plugin
그레이들
maven플러그인에 반응하기는 더 이상 지원되지 않으며 향후 릴리스에서 제거될 예정이다. 대신maven-publish플러그인을 사용하자.
그레이들 maven 플러그인이 프로젝트에 적용되면, 스프링 부트 플러그인은 생성하는 pom에 의존성이 선언되지 않도록 uploadBootArchives Upload 태스크를 구성한다.