스프링부트와 AWS로 혼자 구현하는 웹서비스 - 1231

megaseunghan·2021년 12월 31일
1
post-thumbnail

이동욱 님이 지은책 '스프링부트와 AWS로 혼자 구현하는 웹 서비스'를 구매했다.


예제를 보면서 스프링부트에 입문하려고 했는데 31일 오늘, 예제를 그대로 따라가려고 하다가

  • Java 8
  • SpringBoot 2.1.7.RELEASE
  • Gradle 4.10.2

위에 적힌 3가지의 각 버전을 맞추는 중, Gradle을 처음 써보는지라 2시간 정도를 헤맸다.
21년 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'

repositories {
    mavenCentral()
    jcenter()
}

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

처음엔 프로젝트 설정을 마치고 예제를 보면서 그대로 따라쳤다.
하지만 내 Gradle 버전은 7.1버전이였고, 이를 4.10.2로 다운그레이드 해야했다.

1트

: 1트째에는 Gradle version change intelliJ로 구글링하여 ./gradlew wrapper --gradle-version [version]을 터미널에 입력했다.

😠 근데 버전은 안바뀌고 이런 에러가 뜨면서 실패했다.

Could not find method compile() for arguments [org.springframework.boot:spring-boot-starter-web] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

2트

: 이런 에러가 떴는데 이걸 처음엔 뭔지도 모르니까 그냥 무시했던것 같다. 알고보니 compile() 이라는게 7.1버전에서는 implementation으로 적어야 한다고 하더라. 그래서 2시간 정도 사투를 하고 아래와 같은 해결방안을 유추했다.

  1. 지금 내가 사용중인 버전은 7.1이니까 compile, testCompile 을 7.1에게 맞는 구문으로 implement, testImplementdependencies를 수정한다.
  2. ./gradlew wrapper --gradle-version 4.10.2를 터미널에 입력하여 다운그레이드를 시도한다.
  3. implement, testImplement -> compile, testCompile로 다시 수정한다.

결과는 성공 !

성공적으로 Gradle의 버전을 마무리했고 이제 예제를 따라 열심히 공부만 하면 된다.

0개의 댓글