SW개발/개발환경

Eclipse Gradle 빌드 오류 : * What went wrong:The specified initialization script '/var/folders/cp/XXX.gradle' does not exist.

꾸기작 2025. 1. 22. 16:26
반응형

놀랍지 않은 오류에 몹시 놀라고 있다.

오랜만에 유지보수 중인 Eclipse 프로젝트를 열어 소스코드를 수정하려했는데 오류가 발생하여 아래와 같은 화면으로 Gradle Task를 선택할 수 없게되었다. "Gradle Tasks" pane에서 리프레시 버튼을 클릭해도 "ZaApps"는 오류 표시인 빨간색 느낌표가 사라지지 않는다.

ZaApps 프로젝트에서 오류

콘솔창에 표시되는 오류 메시지는 아래와 같다.

Wat went wrong !!!

...
FAILURE: Build failed with an exception.

* What went wrong:
The specified initialization script '/var/folders/cp/z_vzbmr9399368p9gkrg112h0000gn/T/d146c9752a26f79b52047fb6dc6ed385d064e120494f96f08ca63a317c41f94c.gradle' does not exist.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 6ms

임시 저장 gradle 스크립트 파일이 없다는 오류메시지인데 얼마전까지 잘 되던 프로젝트인데 어찌된 것인지...

프로젝트 탐색창에서 프로젝트위에 마우스 오른쪽 버튼을 누르고 메뉴 가장 하단의 Properties를 클릭한다.

프로젝트 설정을 들어가보자.

나는 이렇게 설정한 적이 없었던 것 같은데 아래와 같이 "Gradle"설정에서 "Override workspace settings" 항목이 체크되어 있고 하단의 "Advanced Options" 항목 중 "Program Arguments"에 "--init-script" 옵션이 설정되어 있다.

과감하게 "Override workspace settings"항목의 체크를 없애보도록 하자.

--init-script 설정이 들어가있다.

하단의 "Apply and Close"버튼을 누르고 Gradle Tasks 창에서 Refresh 버튼을 눌러주면 OK 오류가 사라졌다.

평화로와진 Eclipse...

오류만 해결하면 OK인 분들은 여기까지 읽으시면 된다.

 

===

 

이 참에 init-script가 무엇인지 알아보았다.

반응형

--init-script 옵션의 역할

• Gradle 초기화 단계에서 사용자 정의 작업 실행:
    - 초기화 스크립트는 settings.gradle 또는 build.gradle보다 먼저 실행.
    - 프로젝트에 영향을 미치지 않는 글로벌 설정, 로깅 설정, 플러그인 적용 등을 정의하는 데 사용.
• 예시 초기화 스크립트:

allprojects {
    println "Initializing project: ${project.name}"
}

Eclipse에서 --init-script가 생기는 이유

1. Eclipse Buildship 플러그인의 자동 생성

• Eclipse의 Buildship 플러그인이 임시 초기화 스크립트를 생성하여 사용 중일 가능성이 크다.

• Buildship은 다음과 같은 목적을 위해 임시 초기화 스크립트를 생성할 수 있다:

    - 사용자 정의 Eclipse 작업 (예: 프로젝트 디렉토리 설정)

    - Gradle 빌드 로깅 및 디버깅 지원

 

2. 사용자가 명시적으로 설정한 경우

• --init-script를 프로젝트 설정에서 직접 추가했거나, 이전에 수동으로 설정한 내용이 남아 있을 수 있다.

 

3. 특정 플러그인 또는 설정 의존성

• 일부 플러그인(예: CI/CD 도구 또는 커스텀 Gradle 플러그인)이 자체적으로 초기화 스크립트를 삽입할 수 있다.

 

그러나, 얼마전까지 잘 빌드해서 사용하던 프로젝트에 어떠한 연유로 --init-script 옵션이 끼어들어갔는지는 알 수 없었다.

반응형