Gradle 프로젝트를 처음 만들면 build.gradle의 초기 상태는 아래와 같습니다.
plugins {
id 'java'
}
group 'com.example.park'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}
위의 코드들은 자바 개발에 가장 기초적인 설정만 되어있는 상태입니다.
아래는 스프링 부트에 필요한 설정을 추가한 전체 코드입니다.
buildScript {
ext {
springBootVersion = '2.1.7.RELEASE'
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group 'com.example.park'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
전체 코드를 가장 위부터 보도록 하겠습니다.
buildscript {
ext {
springBootVersion = '2.1.7.RELEASE'
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
위의 코드는 프로젝트의 플러그인 의존성 관리를 위한 설정입니다.
ext라는 키워드는 build.gradle에서 사용하는 전역변수를 설정하겠다는 의미인데, 여기서는 springBootVersion 전역변수를 생성하고 그 값을 '2.1.7.RELEASE'로 하겠다는 의미입니다. 즉, spring-boot-gradle-plugin라는 스프링 부트 그레이들 플러그인의 2.1.7.RELEASE를 의존성으로 받겠다는 의미입니다.
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
위는 앞에서 선언한 플러그인 의존성들을 적용할 것인지를 결정하는 코드입니다
io.spring.dependency-management 플러그인은 스프링 부트의 의존성들을 관리해 주는 플러그인이라 꼭 추가해야만 합니다. 앞 4개의 플러그인은 자바와 스프링 부트를 사용하기 위해서는 필수 플러그인들입니다.
repositories {
mavenCentral()
jcenter()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
repositories는 각종 의존성(라이브러리)들을 어떤 원격 저장소에서 받을지 정합니다.
기본적으로 mavenCentral을 많이 사용하지만, 최근에는 라이브러리 업로드 난이도 때문에 jcenter도 많이 사용합니다.
dependencies는 프로젝트 개발에 필요한 의존성들을 선언하는 곳입니다.
'Spring' 카테고리의 다른 글
[Spring] @TransactionalEventListener (0) | 2021.08.25 |
---|---|
[Spring] @ModelAttribute @RequestParam @RequestBody 차이 (0) | 2021.04.15 |
스프링 트랜잭션에서 RuntimeException이 발생하면 롤백이 발생하는 이유 (2) | 2021.01.17 |
세션 저장소를 사용하는 3가지 방법 (0) | 2020.07.25 |
Spring Security 와 OAuth2 로 로그인 구현 (구글, 카카오, 네이버 등) (0) | 2020.07.25 |
댓글