본문 바로가기
Spring

SpringBoot build.gradle 설정

by 에드박 2021. 1. 26.

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는 프로젝트 개발에 필요한 의존성들을 선언하는 곳입니다.

 

 

댓글