준호씨의 블로그

gradle wrapper version up 하기 본문

개발이야기

gradle wrapper version up 하기

준호씨 2020. 6. 25. 23:38
반응형

gradle wrapper를 만들어 두면 gradle을 따로 설치하지 않고도 gradle을 사용할 수 있게 해 줍니다.

gradle을 사용하다 보면 종종 gradle wrapper 버전을 올려주어야 하는 경우가 생기는데요. 특히 java 버전이 점점 올라가면서 gradle이 동작하지 않게 되는 경우들이 종종 있어서 버전업이 필요한 시기가 오곤 합니다. IntelliJ 같은 툴에서도 구 gradle을 지원하지 않으면서 옛 프로젝트들이 잘 안 불러와지기도 하더군요. 다만 gradle을 버전업 하다 보면 구 build.gradle에서 실행이 안 되는 명령어들이 생겨서 같이 수정해 주어야 되기도 하지만요.

아무튼 이번 글에서는 gradle wrapper를 버전업 하는 방법에 대해 알아보겠습니다. 간단합니다.

$ ./gradlew wrapper --gradle-version=6.5

이 커맨드 뒤에 버전만 원하는 버전으로 넣어 주면 됩니다. 6.5는 현재 가장 최신 버전입니다.

 

gradle이 설정되어 있는 프로젝트를 보면서 확인해 보겠습니다.

프로젝트 디렉터리에서 gradle/wrapper 디렉터리에 gradle-wrapper.properties를 보면 어떤 버전의 gradle을 사용할지 설정되어 있습니다.

#Thu Jun 25 17:42:55 KST 2020
distributionUrl=https\://services.gradle.org/distributions/gradle-6.4.1-all.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

오늘 생성한 spring boot프로젝트인데 gradle 6.4.1로 되어 있습니다. 현재 gradle 최신 버전인 6.5로 바꾸려면 아래처럼 명령어를 입력해 주면 됩니다.

$ ./gradlew wrapper --gradle-version=6.5

공식문서 https://gradle.org/install/#with-the-gradle-wrapper에서는 아래처럼

$ ./gradlew wrapper --gradle-version=6.5 --distribution-type=bin

--distribution-type=bin 옵션을 추가해 주고 있지만 https://docs.gradle.org/6.5/userguide/gradle_wrapper.html 문서를 보면 기본값이 bin이니 생략해 주어도 무방합니다.

gradle wrapper 명령어로 6.5로 버전업 해 보았습니다.

$ ./gradlew wrapper --gradle-version=6.5
./gradlew: line 39: cd: "./: No such file or directory

Welcome to Gradle 6.4.1!

Here are the highlights of this release:
 - Support for building, testing and running Java Modules
 - Precompiled script plugins for Groovy DSL
 - Single dependency lock file per project

For more details see https://docs.gradle.org/6.4.1/release-notes.html


BUILD SUCCESSFUL in 1s
1 actionable task: 1 executed

사소한 오류 메시지가 보였지만 gradle-wrapper.properties파일을 열어보니 별다른 문제없이 버전업이 잘 되었습니다.

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

혹시 모르니 다시 실행해 보았습니다.

$ ./gradlew wrapper --gradle-version=6.5      

BUILD SUCCESSFUL in 754ms
1 actionable task: 1 executed

오류 없이 잘 실행됩니다.

$ ll -rth
total 48
-rw-r--r--  1 junho85  staff    26B Jun 25 17:42 settings.gradle
drwxr-xr-x  4 junho85  staff   128B Jun 25 17:42 src
-rw-r--r--  1 junho85  staff   715B Jun 25 17:42 HELP.md
-rw-r--r--  1 junho85  staff   668B Jun 25 17:42 build.gradle
drwxr-xr-x  6 junho85  staff   192B Jun 25 21:50 build
drwxr-xr-x  4 junho85  staff   128B Jun 25 23:19 gradle
-rwxr-xr-x  1 junho85  staff   5.6K Jun 25 23:19 gradlew
-rw-r--r--  1 junho85  staff   3.0K Jun 25 23:19 gradlew.bat

gradlew파일 등의 gradle wrapper관련 파일들이 모두 갱신된 것으로 보아 스크립트에 있던 오류도 해결된 거 같습니다.

gradle wrapper버전업을 하면 gradlew, gradlew.bat 스크립트 및 gradle/wrapper디렉터리에 있는 gradle-wrapper.jar, gradle-wrapper.properties파일도 갱신됩니다.

$ ll -rth
total 128
-rw-r--r--  1 junho85  staff   200B Jun 25 23:19 gradle-wrapper.properties
-rw-r--r--  1 junho85  staff    58K Jun 25 23:19 gradle-wrapper.jar

gradle-wrapper.jar 파일의 용량이 적은 것으로 보아 설정에 있는 gradle-6.5-bin.zip 파일을 다운로드하여서 설치를 해서 사용하는 것으로 보입니다.

https://docs.gradle.org/current/userguide/gradle_wrapper.html 문서에도 그렇게 설명되어 있습니다.

gradle-wrapper.jar
  The Wrapper JAR file containing code for downloading the Gradle distribution.

 

좀 길어지긴 했지만 gradle wrapper 버전업 방법 +a에 대해 알아보았습니다. 문득 gradle 버전을 낮게 설정해서 제대로 세팅이 안되던 프로젝트들이 생각나네요. 항상 최신일 필요까진 없지만 꾸준히 버전업 시켜주는 습관을 들이면 좋을 거 같습니다.

반응형
Comments