준호씨의 블로그
gradle wrapper version up 하기 본문
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 버전을 낮게 설정해서 제대로 세팅이 안되던 프로젝트들이 생각나네요. 항상 최신일 필요까진 없지만 꾸준히 버전업 시켜주는 습관을 들이면 좋을 거 같습니다.
'개발이야기' 카테고리의 다른 글
OSX - 8080 포트를 사용하는 프로세스를 찾아라. lsof, netstat (0) | 2020.07.05 |
---|---|
IntelliJ - 소스코드창만 보고싶어. Hide All Tool Windows. Cmd + Shift + F12. Zoom Ctrl + Cmd + = (0) | 2020.06.26 |
Java - 문자 리스트 join. 숫자 리스트 join. (0) | 2020.06.24 |
Swagger. Springfox-Swagger 그리고 Springdoc (0) | 2020.06.23 |
Spring Boot 2.3 릴리즈 노트 (0) | 2020.06.22 |