Spring Boot Project에서 gradle를 사용할때 plugin 추가 방법
1. Using the plugins DSL
- Single Project
// build.gradle
plugins {
id "org.springframework.boot" version "2.2.4.RELEASE"
}
- Multi Project
// settings.gradle
include 'helloA'
include 'helloB'
include 'goodbyeC'
----
// build.gradle
plugins {
id 'org.gradle.sample.hello' version '1.0.0' apply false
id 'org.gradle.sample.goodbye' version '1.0.0' apply false
}
subprojects {
if (name.startsWith('hello')) {
apply plugin: 'org.gradle.sample.hello'
}
}
----
goodbyeC/build.gradle
plugins {
id 'org.gradle.sample.goodbye' // subprojects 에서는 버전을 명시 할 필요 없다.
}
- Custom Plugin Repositories
// settings.gradle
pluginManagement {
repositories {
maven {
url '../maven-repo'
}
gradlePluginPortal()
ivy {
url '../ivy-repo'
}
}
}
2. Using legacy plugin application
// build.gradle
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "org.springframework.boot:spring-boot-gradle-plugin:2.2.4.RELEASE"
}
}
apply plugin: "org.springframework.boot"
3. 기타
DSL 방식의 "plugins { }"에서 version은 변수처리가 안된다.
- DSL
// build.gradle
plugins {
id 'io.spring.dependency-management' version '1.0.9.RELEASE' apply false
id 'org.springframework.boot' version '2.2.4.RELEASE' apply false
id 'org.springframework.cloud.contract' version '2.2.1.RELEASE' apply false
}
ext {
set('springBootVersion', "2.2.4.RELEASE")
set('springCloudVersion', "Hoxton.SR1")
set('springCloudContractVersion', "2.2.1.RELEASE")
}
dependencyManagement {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:${springBootVersion}"
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
- Legacy
// build.gradle
buildscript {
ext {
springBootVersion = '2.2.4.RELEASE'
springCloudVersion = 'Hoxton.SR1'
springCloudContractVersion = '2.2.1.RELEASE'
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath "io.spring.gradle:dependency-management-plugin:1.0.9.RELEASE"
classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}"
classpath "org.springframework.cloud:spring-cloud-contract-gradle-plugin:${springCloudContractVersion}"
}
}
dependencyManagement {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:${springBootVersion}"
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
4. 참고
https://docs.gradle.org/current/userguide/plugins.html