메이쁘

[Spring boot][Kotlin] Spring boot 프로젝트 생성 후 처음 발생하는 'Unresolved reference: snippetsDir' 이슈 해결 본문

Technology/Web - Spring

[Spring boot][Kotlin] Spring boot 프로젝트 생성 후 처음 발생하는 'Unresolved reference: snippetsDir' 이슈 해결

메이쁘 2022. 3. 17. 10:45

안녕하세요?

 

Kotlin으로 Spring framework를 사용하게 되서,

 

처음 프로젝트 생성부터 하나씩 만들어가면서 공부하려 했습니다.

 

 

근데 왠걸... 처음 생성할 때 부터 이슈가 발생했습니다.

구글 검색을 통해 빠르게 해결하긴 했습니다만..

 

어찌보면 간단한 건데, 앞으로도 프로젝트 생성할 일은 잦을 것 같아서 따로 포스팅해두려고 했습니다.

물론 다른 분들의 게시글을 참고하셔도 되지만, 저는 빠르게 해결하기 위해 작성하려 합니다.

 

빠르게 해결해서 시간절약하시길 바랍니다!

 

 

IDE : Intellij

Framework : Spring boot 2.6.4

Language : Kotlin

Build : Gradle


1. 문제 발생

정확히 spring boot 프로젝트 생성 후 gradle build를 시도하니, 위와 같이 오류가 발생했습니다.

 

Unresolved reference: snippetsDir

 

얼추보니, snippetsDir 경로를 찾을 수 없다는 것 같네요.

 

바로 검색에 들어갔습니다.

 

 

검색결과, build.gradle.kts 에서 snippetsDir 변수 설정이 잘못되어서 생긴 이슈라고 합니다.

빠르게 고쳐볼까요?

 

 


2. 해결?

빨간 밑줄 친 부분처럼 되어있던 기존의 코드를

 

아래와 같이 변수를 생성하여 할당하는 코드로 변경합니다.

 

***

val snippetsDir by extra {} 는 Gradle Kotlin DSL에 추가적으로 설정하기 위해 사용하는 문법이라고 하네요.

말 그대로 extra properties..

 

참고 : 

https://stackoverflow.com/questions/52401740/how-to-efficiently-populate-extra-properties-in-the-gradle-kotlin-dsl

 

How to efficiently populate extra properties in the Gradle Kotlin DSL?

I'm migrating Gradle build scripts from Groovy to Kotlin DSL and one of the things which is not really documented is how to populate extra properties. In Groovy, I can write: ext { comp = '

stackoverflow.com

https://stackoverflow.com/questions/54944625/how-to-use-type-safe-extra-properties-in-gradle-kotlin-dsl

 

How to use type safe extra properties in Gradle Kotlin DSL

I have multimodule project written in Kotlin DSL. Here are the relevant files: rootDir/gradle/dependencies.gradle.kts: // other config val libVersion by extra("0.1") rootDir/build.gradle.kts: //

stackoverflow.com

***

 

 

하지만, 다시 빌드한 결과.

다른 오류가 발생했습니다!

 

 


3. 진짜최종해결

위 에러 내용을 보면, 이전에 by extra를 통해 snippetsDir 라는 변수를 새로 만들어 거기에 할당했었습니다.

 

이렇게 수정했기 때문에, 이전에 활용하는 snuppetsDir과 연관된 기존 코드도 변경해줘야 했습니다.

 

같은 파일인 build.gradle.kts 에서 아래로 내려보면

 

 

위와 같은 코드가 있는데, 밑줄 친 코드로 수정하시면 됩니다.

 

이거는 오류 내용처럼 <>.test 로 바로 호출하려니 경로 설정이 되어있지 않아서

depentsOn(tasks.test) 로 변경해줘야 합니다!

 

 

결과!

 

무사히 build finished 되었습니다!!!

 

 

예!

 

 

 

감사합니다.

 

 

Comments