Execution failed for task ':compileQuerydsl'. > Failed to clean up stale outputs 에러를 만나다..

SionBackEnd·2023년 3월 8일
0

에러가 갑자기 왜 나타났을까?


어제 CI/CD작업을 하고 오늘 프로젝트 수정할게 있어서 실행이 되는지 체크하기위해 실행했는데 알 수 없는 에러가 나타났다.. 난 코드를 만진게 없는데 뭐야??

문제 해결

안녕하세요.
PC를 먼저 재부팅한 다음에, 콘솔에서 gradlew clean 명령을 실행해보시겠어요?
이후에 IntelliJ를 실행하고,
File -> Open -> 해당 프로젝트의 build.gradle을 선택해주세요. 그 다음에 선택창이 뜨는데, Open as Project를 선택해주세요.
감사합니다. -김영한

https://www.inflearn.com/questions/171043/build-%EC%98%A4%EB%A5%98

구글링을 통해 나와 같은 에러를 만난사람들의 해결방법을 보았다.
김영한 선생님께서 위와 같은 말씀을 남겨주셨다. 말씀하신걸 보고 빌드를 실행한 위치와 권한 문제 때문에 IntelliJ에서 실행이 안될 수 있을것 같다는 생각을 하였다. 결론적으로는 문제를 해결했는데, 우리는 그원인에 대해서 알아야 한다.

원인

컴퓨터는 혼자서 무언가를 변경하지 못한다. 모든 것은 내가 명령했기 때문에 변화가 일어난 것이다.
그렇다면 내가 한 작업은 무엇인가? 무슨짓을 했길래 에러를 만나게 되었을까?

내가 한 작업은 빌드를 실행한 위치가 다르다.

어제 내가 CI/CD 작업을 진행하면서 무엇을 했었는지 곰곰히 생각해보았다.
빌드관련으로 로컬에서 먼저 확인하기 위해 터미널을 열어 해당 프로젝트에서 아래의 명령어를 입력하였다.

sudo ./gradlew clean 
sudo ./gradlew build

빌드가 정상적으로 되는것을 확인하고 CI/CD작업을 마쳤고 잠을 자고 오늘이 된것이다.
변한건 내가 빌드를 실행했던 위치였던것이었다.

정확한 원인은 sudo 명령어

어제 내가 실행한 빌드 관리자 권한으로 빌드

인텔리J가 실행한 빌드 일반유저 권한으로 빌드

프로젝트를 빌드 했을때 생겨나는 build파일이다. 나는 터미널에서 주로 sudo 명령어를 붙혀서 빌드 작업을 진행한다. 혹시라도 권한이 없어서 진행이 안될까봐 하는 걱정때문에...
하지만, 우리가 IntelliJ를 실행시킬때 IntelliJ는 일반유저 권한으로 프로젝트를 빌드하게 된다.

IntelliJ에서 프로젝트를 실행시키면 자동으로 빌드 작업을 진행하고 빌드가 성공하면 jar파일을 가지고 프로젝트를 실행시켜준다.

그러니 정리를 하자면, 이번 에러는 Querydsl 관련 에러가 아니라 일반유저관리자가 만든 폴더를 삭제하지 못해서 에러를 배출시킨것이다.

보충 설명

순서
1. 내가 관리자 권한으로 build 폴더를 생성하였음
2. IntelliJ를 통해 일반 권한으로 프로젝트를 실행함
2-1. 일반유저 권한을 가지고 있는 IntelliJ가 관리자 권한으로 생성된 build폴더를 삭제하려고함
2-2. 일반유저는 관리자 권한 폴더를 삭제하지 못하여 InteeliJ는 해당 작업하던 위치에서 에러를 배출
3. 작업 위치가 compileQuerydsl'. > Failed to clean up 작업단계 즉 최초로 삭제작업을 진행하려던 곳에서 에러메세지 배출.

배운점

이번에 CI/CD 공부를 하면서 sed명령어도 배우고, sudo 관리자 권한에 대해서 더욱 많은 것을 알게되어서 이번에 만난 에러를 더욱 쉽게 이해하고 해결할 수 있었던것같다.

profile
많은 도움 얻어가시길 바랍니다!

0개의 댓글