[SpringBoot] SpringBoot 버전 다운그레이드 및 Nexfilx Zuul 사용하기

hanana·2023년 10월 26일
1

인프런 강의를 듣고 따라하던 중
Netfilx Zuul을 사용하는 예제가 있었는데
해당 라이브러리는 SpringBoot 2.4버전부터는 지원하지 않는 라이브러리였다.

문제는
글을 작성하는 시점에서
SpringInitializer 최소 지원버전이 SpringBoot 2.7.17 버전이고
이로인해 Zuul 의존성 자체를 추가하지 못하는 상황이 발생하였다.

어떠한 이유에서 Deprecated 되었다면
현재 버전을 유지하면서 다른 방법을 찾는것이 더 합리적인 방법이겠지만,

일단 처음 실습하는 기술인 만큼 직접 강의 코드를 따라치면서
흐름을 익히는게 더 중요하다고 판단하여 문제를 해결하였고, 과정을 공유하려고 한다.

* 아마 Zuul 뿐만이 아니라 현재 IDE, gradle버전을 이용하며
레거시 코드를 따라해야할 때
버전문제에 부딪힌다면 이 방법을 통해 해결이 가능할 것으로 보인다.


그런건 모르겠고 코드가 궁금해

드..드리겠습니다..

build.gradle

//추가 - start ** 위치중요 최상단 혹은 plugins 위에 존재 **
buildscript {
    repositories {
        mavenLocal()
        maven { url 'https://maven.aliyun.com/repository/google/' }
        maven { url 'https://maven.aliyun.com/repository/public/' }
        maven { url 'https://maven.aliyun.com/repository/spring/' }
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' }
        maven { url 'https://maven.aliyun.com/repository/spring-plugin/' }

        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.3.8.RELEASE")
    }
}
//추가 - end

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


group = 'com.example'
version = '0.0.1-SNAPSHOT'

java {
    sourceCompatibility = '11'
}

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    // mvc 리포지토리에서 가져옴
    implementation group: 'org.springframework.cloud', name: 'spring-cloud-starter-netflix-zuul', version: '2.2.10.RELEASE'

    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
    useJUnitPlatform()
}

gradle.wrapper.gradle-wrapper.properties

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
# gradle 버전도 함께 7.2로 down
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

해결과정

  1. 의존성을 Initializer에서 제공하지 않으므로 mvn repository를 사용하여 가져온다.
  2. springBoot 2.4 이후 버전에서는 Zuul 라이브러리가 호환되지 않으므로
    springBoot 버전을 2.3.8.RELEASE로 맞춰준다.
  3. 빌드가 실패한다! gradle.wrapper.gradle-wrapper.properties를 찾아가서 gradle 버전을 7.2로 낮춰준다.

해결을 하는 과정에서 결정적으로 도움이 된
build.gradle 설정을 맞춰주는 포스팅이다.

https://ryumodrn.tistory.com/9

위 포스팅 덕분에 삽질을 멈출 수 있었다.
포스팅에서도 공유가 된 페이지인데 기회가 될 때 읽어보면 도움이 될 것 같다.
https://www.bswen.com/2020/11/java-How-to-solve-springboot-exception-3.html
/* 대충 buildScript를 이용하면 해결할 수 있다는 의미... */

profile
성숙해지려고 노력하지 않으면 성숙하기까지 매우 많은 시간이 걸린다.

0개의 댓글