1 minute read

Updated:

그레이들 프로젝트를 스프링 부트 프로젝트로 변경하기

구현 시 에러 해결

  • build.gradle 파일에 스프링 부트에 필요한 설정(의존성)을 추가하면 변경할 수 있다. 책에 나온 순서대로 의존성을 추가했는데 그레이들 설정 변경을 반영하니 아래와 같은 에러가 났다.
       Build file 'C:\Work\springboot-webservice\build.gradle' line: 28
       A problem occurred evaluating root project 'springboot-webservice'.
    
  • 확인해보니 해당 프로젝트는 Gradle 4~5 버전에서 실행 가능한대 내 프로젝트의 버전은 7이었다. 버전을 낮춰주는 작업이 필요하여 터미널 창을 열어 아래와 같이 배치를 실행했다.
  • 처음 실행했을 땐 ‘용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다.’ 실행 오류가 나서 터미널 Shell path를 cmd로 바꿔주고 정상 진행됐다.


build.gradle 변경한 코드

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()
    }

    dependencies {
        compile('org.springframework.boot:spring-boot-starter-web')
        testCompile('org.springframework.boot:spring-boot-starter-test')
    }
  • repositories는 각종 의존성들을 어떤 원격 저장소에서 받을 지를 정한다. 기본적으로 mavenCentral을 사용하지만 라이브러리 업로드 난이도 때문에 jCenter도 많이 사용한다.
  • dependencies는 개발에 필요한 의존성을 선언하는 곳이다.