스프링 부트 build.gradle 작성하기 간단 정리

헬리코박도·2021년 8월 24일
0

레거시 버젼

buildscript {
    ext {
        springBootVersion = '2.5.4.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'

...

dependencies {
	compile('org.springframework.boot:spring-boot-starter-web')
    testCompile('org.springframework.boot:spring-boot-starter-test')

ext는 build.gradle 내에서 쓸 전역 변수를 선언하는 키워드이다.
springBootVersion 변수를 생성하고 그 값을 '2.1.7.RELEASE'로 한다.

그 아래 dependencies에서 spring-boot-gradle-plugin을 전역 변수로 선언한 springBootVersion의 값으로 설정하여 의존성으로 받는다.

repositories의 mavenCentral()과 jcenter()는 오픈 소스 라이브러리를 저장하는 저장소로 이 프로젝트에서 해당 저장소를 사용해 라이브러리를 불러오겠다는 뜻이다.
jcenter 저장소는 intellij에 작성하면 경고가 뜨는데 좀 있으면 서비스를 종료한다고 한다.

buildscript 밖의 dependencies에서 프로젝트 개발에 필요한 의존성들을 선언해준다. compile 메서드 안에 라이브러리 명을 넣어 선언해준다. 버젼을 명시할 수 있지만 명시하지 않아야 buildscript에서 작성한 sprig-boot-gradle-plugin의 버젼을 따라간다.

현재 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 보고 있는데 2019년도에 쓰인 책이라 이렇게 옛날 방식으로 쓰여있다. 스프링 부트 버젼도 구형이다.

현재 버젼

plugins {
    id 'org.springframework.boot' version '2.4.1'
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
    id 'java'
}

...

dependencies {
	implementation('org.springframework.boot:spring-boot-starter-web')
    testImplementation('org.springframework.boot:spring-boot-starter-test')
}

위처럼 buildscript와 apply plugins 사용하는 대신에 이렇게 plugins를 사용하였다.
gradle의 버젼이 상승하여 buildscript 방식도 여전히 지원하지만 이제는 plugins로 buildscript와 apply plugin 방식을 대체한다고 한다.
기존의 것도 사용할 수 있다.

의존성 설정에서도 compile 메소드가 아닌 implementation 메소드를 사용한다.
검색해보니 implementation이 compile 보다 빠르고 빌드 시 api가 노출되지 않아 보안성도 좋다고 한다. 그래서 compile의 사용이 권장되지
않는다고 한다.

profile
Data Engineer

0개의 댓글