[Spring] Gradle 9.0 호환성 경고 해결하기, Deprecated Gradle features were used in this build
ㅁ 들어가며
ㅇ Kotlin Spring 프로젝트를 Gradle로 빌드할 때 다음과 같은 경고 메시지가 나타나 이를 해결하는 과정을 이력으로 남겨 본다.
ㅇ 검색을 해보니 인텔리제이 변경, Gradle 경고 모드 변경, Gradle 버전 변경 방법들이 있어 각각 적용해 보았다.
ㅁ 경고 메시지
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
ㅇ 이 경고는 프로젝트에서 사용 중인 Gradle 기능 중 일부가 더 이상 사용되지 않으며, Gradle 9.0과 호환되지 않을 수 있음을 나타낸다.
ㅇ 이 문제를 해결하기 위한 몇 가지 방법을 찾아 보았다.
ㅁ해결 방법 1: IntelliJ IDEA 설정 변경
ㅇ IntelliJ IDEA> Settings에서 왼쪽 메뉴 Build, Execution, Deployment > Build Tools > Gradle으로 이동한다.
ㅇ "Build and run using"을 "Gradle"에서 "IntelliJ IDEA"로 변경
ㅇ "Run tests using"을 "Gradle"에서 "IntelliJ IDEA"로 변경
ㅇ 이 방법은 나에게 도움이 되지는 않았다.
출처: https://firstws.tistory.com/23
ㅁ 해결 방법 2: Gradle 경고 모드 변경
build --exclude-task test --warning-mode all --stacktrace
ㅇ build 시 Gradle VM options에 위의 옵션을 추가한다.
ㅇ 명확한 원인파악을 위해 test도 task에서 뺐다.
ㅇ 이 방법은 Gradle의 경고 모드를 변경하여 더 자세한 정보를 제공하도록 한다.
The Configuration.fileCollection(Spec) method has been deprecated. This is scheduled to be removed in Gradle 9.0. Use Configuration.getIncoming().artifactView(Action) with a componentFilter instead. Consult the upgrading guide for further information: https://docs.gradle.org/8.8/userguide/upgrading_version_8.html#deprecate_filtered_configuration_file_and_filecollection_methods
ㅇ 이를 통해 구체적인 문제를 파악하고 해결할 수 있었다.
ㅇ 안내에서 제시된 예외처리 방법을 통해 해당 경고에 대한 대응 방안을 찾을 수 있었다.
출처: Gradle 공식문서 - Showing or hiding warnings
ㅁ 해결 방법3: Gradle 버전 변경
ㅇ 프로젝트의 Gradle 버전을 변경하는 것도 도움이 될 수 있다.
ㅇ 프로젝트의 gradle/wrapper/gradle-wrapper.properties 파일을 연다.
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
ㅇ 8.8을 8.2으로 변경하면 경고가 사라졌다.
ㅇ 참고로 최신 버젼은 v8.9이다.
ㅁ 마무리
ㅇ 위의 방법들을 시도해보고, 프로젝트에 가장 적합한 해결책을 선택하면 된다.
ㅇ 일반적으로 첫 번째 방법인 IntelliJ IDEA 설정 변경이 가장 간단한 방법이다. (다른 분들은 대부분 성공)
ㅇ 그러나 프로젝트의 특성에 따라 다른 방법이 더 적합할 수 있다.
ㅇ 각 방법을 테스트해보고 최선의 결과를 얻는 방법을 선택하는 것이 좋다.
ㅁ 함께 보면 좋은 사이트
ㅇ Gradle 공식문서 - Showing or hiding warnings
ㅇ https://firstws.tistory.com/23