9. Reacting to Other Plugins

다른 플러그인이 적용되면 스프링 부트 플러그인은 프로젝트 구성을 다양하게 변경하여 반응한다. 이 섹션에서는 이러한 변경 사항에 대해 설명한다.

9.1. Reacting to the Java Plugin

그레이들의 java 플러그인이 프로젝트에 적용되면, 스프링 부트 플러그인은 다음을 수행한다:

  1. 프로젝트에 대해, 실행 가능한 fat jar을 생성하는 bootJar라 명명된 BootJar 태스크를 생성한다. jar는 기본 소스 세트의 런타임 클래스 경로에 있는 모든 것을 포함한다. 클래스는 BOOT-INF/classes에 패키지되고 jar는 BOOT-INF/lib에 패키지된다.
  2. bootJar 태스크에 의존하도록 assemble 태스크를 구성한다.
  3. 아카이브 분류자(archive classifier) 컨벤션으로 plain을 사용하도록 jar 태스크를 구성한다.
  4. 빌드팩을 사용하여 OCI 이미지를 생성하는 bootBuildImage라 명명된 BootBuildImage 태스크를 생성한다.
  5. 애플리케이션을 실행하는 데 사용할 수 있는 bootRun이라 명명된 BootRun 태스크를 만든다.
  6. bootJar 태스크에 의해 생성된 아티팩트를 포함하는 bootArchives라 명명된 구성을 만든다.
  7. 스프링 부트의 Devtools와 같이 개발 시에만 필요하고 실행 가능한 jar 및 war에 패키지하면 안 되는 의존성에 대해 developmentOnly라는 구성을 생성한다.
  8. productionRuntimeClasspath라는 구성을 만든다. 이는 developmentOnly 구성에만 나타나는 의존성을 뺀 runtimeClasspath와 동일하다.
  9. UTF-8을 사용하도록 구성된 인코딩이 없는 모든 JavaCompile 태스크를 구성한다.
  10. -parameters 컴파일러 인수를 사용하도록 JavaCompile 태스크를 구성한다.

9.2. Reacting to the Kotlin Plugin

kotlin 플러그인을 프로젝트에 적용할 때, 스프링 부트 플러그인: When Kotlin’s Gradle plugin is applied to a project, the Spring Boot plugin:

  1. 스프링 부트의 의존성 관리에 사용되는 코틀린 버전을 플러그인 버전과 일치시킨다. 이는 Kotlin 플러그인의 버전과 일치하는 값으로 kotlin.version 프로퍼티를 설정하여 달성된다.
  2. -java-parameters 컴파일러 인수를 사용하도록 모든 KotlinCompile 태스크를 구성한다.

9.3. Reacting to the War Plugin

그레이들 war 플러그인을 프로젝트에 적용할 때, 스프링 부트 플러그인:

  1. 프로젝트에 대해 실행 가능한 fat war을 생성하는, bootWar라 명명된 BootWar 태스크를 생성한다. 표준 패키징 외에도, providedRuntime 구성의 모든 항목은 WEB-INF/lib-provided에 패키징된다.
  2. bootWar 태스크에 의존하도록 assemble 태스크를 구성한다.
  3. 아카이브 분류자 컨벤션으로 plain을 사용하도록 war 작업을 구성한다.
  4. 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 플러그인이 프로젝트에 적용되면 스프링 부트 플러그인은 다음을 수행한다:

  1. java -jar를 사용하여 bootArchives 구성에서 아티팩트 시작 스크립트를 생성하는 bootStartScripts라 명명된 CreateStartScripts 태스크를 생성한다. 태스크는 defaultJvmOpts 프로퍼티 대한 컨벤션으로 applicationDefaultJvmArgs 프로퍼티를 사용하도록 구성된다.
  2. boot라는 이름의 새 배포를 만들고 lib 디렉토리의 bootArchives 구성에 아티팩트를 포함하고 bin 디렉토리의 시작 스크립트를 포함하도록 구성한다.
  3. mainClassName 프로퍼티를 main 프로퍼티에 대한 컨벤션으로 사용하도록 bootRun 태스크를 구성한다.
  4. jvmArgs 프로퍼티에 대한 컨벤션으로 applicationDefaultJvmArgs 프로퍼티를 사용하도록 bootRun 태스크를 구성한다.
  5. 매니페스트(manifest)의 Start-Class 항목에 대한 컨벤션으로 mainClassName 프로퍼티를 사용하도록 bootJar 태스크를 구성한다.
  6. 매니페스트의 Start-Class 항목에 대한 컨벤션으로 mainClassName 프로퍼티를 사용하도록 bootWar 태스크를 구성한다.

9.6. Reacting to the Maven plugin

그레이들 maven 플러그인에 반응하기는 더 이상 지원되지 않으며 향후 릴리스에서 제거될 예정이다. 대신 maven-publish 플러그인을 사용하자.

그레이들 maven 플러그인이 프로젝트에 적용되면, 스프링 부트 플러그인은 생성하는 pom에 의존성이 선언되지 않도록 uploadBootArchives Upload 태스크를 구성한다.