본문 바로가기

스프링부트와 AWS로 구현하는 웹서비스

[스프링부트/AWS] 1장 인텔리제이로 스프링부트 시작하기(2/3) - 그래들(Gradle) 생성

그래들(Gradle) 프로젝트 생성

인텔리제이 프로젝트 생성

  • 프로젝트 유형 Gradle 선택

Gradle 선택

  • GroupId와 ArtifactId를 등록합니다. ArtifactId는 프로젝트의 이름이 되기 때문에 원하는 이름을 작성해 주면 됩니다.

GroupId와 ArtifactId 등록

그래들 프로젝트를 스프링 부트 프로젝트로 변경하기
plugins {
    id 'java'
}

group 'com.jordy.book'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

 

 

여기서 스프링 이니셜라이저(start.spring.io/)를 통해서 진행하지 않겠습니다. 이유는 스프링 이니셜라이저를 사용하게 되면 build.gradle의 코드가 무슨 역할을 하는지, 이니셜라이저 외에 추가로 의존성 추가가 필요하면 어떻게 해야 할지 등을 모르는 상태로 개발하는 경우가 있습니다. 그래서 하나씩 코드를 추가해 보겠습니다.

 

- build.gradle 맨위에 위치할 코드

bulidscript{
    ext{
        springBootVersion = '2.1.7.RELEASE'
    }
    repositories{
        mavenCentral()
        jcenter()
    }
    dependencies{
        ClassPath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

ext라는 키워드는 build.gradle에서 사용하는 전역변수를 설정하겠다는 의미입니다. 여기서는 spring-boot-gradle-plugin

라는 스프링 부트 그레들 플러그인의 2.1.7.RELEASE를 의존성으로 받겟다는 의미입니다.

 

- 앞서 선언한 플러그인 의존성 적용 결정 코드

//AS-IS
apply plugin : 'java'
apply plugin : 'eclipse'
apply plugin : 'org.springframework.boot'
apply plugin : 'io.spring.dependency-management'

//TO-BE
plugins {
    id 'java'
    id 'eclipse'
    id 'org.springframework.boot' version '2.1.7.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
}

io.spring.dependency-management 플로그인은 스프링 부트의 의존성들을 관리해 주는 플러그인이라 꼭 추가해야만 합니다. 앞 4개의 플러그인은 자바와 스프링 부트를 사용하기 위해서는 필수 플러그인들이니 항상 추가하면 됩니다.

plugins.gradle.org/plugin/io.spring.dependency-management

 

Gradle - Plugin: io.spring.dependency-management

Version 1.0.11.RELEASE (latest) Created 13 January 2021. No version description available. plugins { id "io.spring.dependency-management" version "1.0.11.RELEASE" } buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies

plugins.gradle.org

docs.gradle.org/current/userguide/plugins.html

 

Using Gradle Plugins

Where «plugin id» and «plugin version» must be constant, literal, strings and the apply statement with a boolean can be used to disable the default behavior of applying the plugin immediately (e.g. you want to apply it only in subprojects). No other st

docs.gradle.org

www.jetbrains.com/help/idea/work-with-gradle-projects.html

 

Gradle projects - Help | IntelliJ IDEA

 

www.jetbrains.com

- 나머지 코드 작성

repositories {
    mavenCentral()
    jcenter()
}

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

repositories는 각종 의존성(라이브러리)들을 어떤 원격 저장소에서 받을지 정합니다. 기본적으로 mavenCentral을 많이 사용하지만, 최근에는 라이브러리 업로드 난이도 때문에 jcenter도 많이 사용합니다.

dependencies는 프로젝트 개발에 필요한 의존성들을 선언하는 곳입니다. 여기서는 위의 두개만 받도록 선언하였습니다.

 

- 전체코드

buildscript {
    ext {
        springBootVersion = '2.1.7.RELEASE'
    }
    repositories {
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}


plugins {
    id 'java'
    id 'eclipse'
    id 'org.springframework.boot' version "${springBootVersion}"
    id 'io.spring.dependency-management'    version '1.0.9.RELEASE'
}

group 'com.jordy.book'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
    jcenter()
}

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

- build.gradle 변경사항 반영

위와 같이 'Load Gradle Changes'버튼이 뜹니다. 클릭하면 그레이들이 변경된 내용을 반영하기 시작합니다. 아래와 같이 추가한 두 개의 라이브러리를 확인 할 수 있습니다.

 

출처 : 

jojoldu.tistory.com/463

 

[스프링 부트와 AWS로 혼자 구현하는 웹 서비스] 출간 후기

(출판사: 프리렉, 쪽수: 416, 정가: 22,000원) 서적 링크 오프라인 서점에는 2019.12.04 (수) 부터 올라갈 예정입니다. 강남 교보문고나 광화문 교보문고는 주말에도 올라올 순 있겠지만, 혹시 모르니

jojoldu.tistory.com