코딩공부

Failed to notify project evaluation listener.

milimiliemilie 2025. 1. 1. 21:56

flutter run 돌렸는데, 이런 오류가 뜸

 

아래처럼 해보라고 함.

 

 

 

또 gradle이야? 

더 이상 그냥 따라하기가 뭐해서, build.gradle을 공부해보기로 함. 급할 거 없으니까 이런 식으로 알아가는거지 뭐. 내가 초짜니까 모든 걸 그냥 내려놓고 배우면 되기도 하고. 

 

 - gradle: JVM 언어인 Groovy, Kotlin 둘 중 하나로 작성되는 코드 스크립트. 

build.gradle -> 이것은 Groovy로 작성됨.

 

 - gradle의 모든 것들은 project를 object로 하여 붙는 것들임. 

(예) repositories {...} is equivalent to project.repositories {...}

여기서 project는? 대체로, 컴파일되어야 하는 java 파일을 말함.

즉, 해당 project의 java 파일이 따라가야 하는 것들(예: repositores, dependencies, ...)을 정의해 줌.

 

 - gradle 파일에 나오는 { } 괄호들은, java 코드에 쓰이는 closure라고 보면 된다.

-> 아무래도 java를 언젠가 공부하긴 해야겠다.

 

 

https://www.youtube.com/watch?v=dxZnAaPpk4M

 

 

 - gradle은 빌드 도구. 

빌드 도구: 계속해서 늘어나는 라이브러리를 자동 추가 및 관리해 준다. 프로젝트를 진행하며 라이브러리의 버전을 쉽게 동기화 해준다.

(뭔소린지 잘은 모르겠지만, 이럴 때는 그냥 일단 그렇구나 하고 넘어간다.... 이해한 척 하고 넘어가다 보면, 나중에는 정말 이해가 되어 있다.)

 

 - Groovy: 스크립트 언어. 

JVM 상에서 실행되는데, Java를 기반으로 만들어졌기 때문에 Java와 문법 구조가 유사하다. 호환성이 매우 좋다. (호환성...?)

gradle은 Groovy를 기반으로 한다. 그래서 Java 개발자들이 편하게 쓴다.

(예전에는 Maven이 많이 쓰였다고 함) 

 

 - dependency (의존성)

 . api: 내부 의존성을 ... 컴파일과 런타임 모두에 보이는 API 의존성

 . implementation: 내부 의존성을 ... 런타임에서만 보이는 구현 의존성 (컴파일 시에는 안보인다. 따라서 컴파일 시에 '내부 의존성'만으로 해결되는 부분이 있어, 속도가 빠르다.)

 . compileOnly

 . runtimeOnly

 . test + Implementation, CompileOnly, RuntimeOnly: 해당 의존성을 테스트 시에만 사용하도록 정의

(런타임은 또 뭘까..)

 

(예) 아래와 같은 gradle이 있다면 -> 이렇게 해석할 수 있다

spring: implementation 으로 됨 -> 컴파일, 런타임 모두에 사용

lombok: compileOnly 로 됨 -> 컴파일에만 사용

h2database: runtimeOnly 로 됨 -> 런타임에만 사용

 

https://www.youtube.com/watch?v=ntOH2bWLWQs

 

 

일단 오늘은 여기까지...!

다시 돌아가서 문제를 해결해보자.