인텔리제이 자동 빌드 해제하기

이런 코딩 외적인 문제들은 잘 기록하지 않는편인데, 꽤 오랜시간 해결을 못하고있어서 기록해두려고 한다.

 

발생한 문제

how to disable auto build in intellij

- 돌아가고 있는 스프링 프로젝트 창에서 포커스를 해제하면, 자동으로 빌드가 된다. 다시말해서 현재 사용중인 인텔리제이 창에서 alt-tab을 하거나, 다른 창에 마우스클릭을 해서 인텔리제이의 포커스가 해제되면 

 

 

위와 같이 Build [project-name]이라고 뜨면서 자동으로 빌드가 되어버린다.

 

- 큰 문제가 아니라고 느껴질수도 있으나, 코드를 작성하면서 구글링 등을 동시에 진행할 경우, 코드가 완성되지 않은 대부분의 상태에서 창을 옮길 때마다 빌드가 진행되면서 

 

 

이런 에러 창이 올라오거나,

 

이런 성공창이 올라오기 때문에, 창을 옮기는 동작마다 위 창들을 반복적으로 계속 닫아주어야 한다.

 

 

위 사진은 cmd+F9을 통해서 수동 빌드했을때의 모습이다. 나타나는 메세지의 양에 약간의 차이가 있는 것을 확인할 수 있다.

 

 

분석

 

- 현재 이러한 문제가 발생하는 스프링 프로젝트는 현재 이 프로젝트 단 "1개"이며, 다른 프로젝트들은 문제가 발생하지 않는다.

동일 프로젝트를 윈도우 10에서 실행했을 경우 문제가 발생하지 않았다.

  -> 현재 인텔리제이 세팅과 프로젝트 세팅 모두에 문제가 있어야 함

- 현재 프로젝트는 Kotlin 프로젝트이다.

- 인텔리제이에서 Build and run과 Run tests 모두 IDEA가 아닌 Gradle로 진행하고 있다.

- devtools가 기존 gradle에 포함되어 있었다.

- jrebel 이 activate되어있으나, 프로젝트에는 세팅되어 있지 않다.

 

- 문제가 발생한 컴퓨터는 Mac Pro M2(2023)이며, 사용중인 os는 MacOS Sonoma 14.2.1이다.

-  현재 사용중인 IDE는 Intellij IDEA 2023.2.3 (Ultimate Edition)이며, Runtime Version: 17.0.8.1+7-b1000.32 aarch64, VM은 OpenJDK 64-Bit Server VM by JetBrains s.r.o이다. 

 

 

시도한 방법

1. Settings -> Build, Execution, Deployment -> Compiler -> Build project automatically 체크박스 해제

2. Settings -> Advanced Settings -> Allow auto-make to start even if developed application is currently running 체크박스 해제

3. gradle에서 devtools dependency 삭제

4. Run/Debug Configuration -> Modify options -> on update action에 do nothing 선택 (https://www.jetbrains.com/help/idea/updating-applications-on-application-servers.html)

5. .idea 파일 전체 삭제 후 rebuild

6. Invalid caches and restart

7. 기존 프로젝트 삭제후 git clone으로 다시 원격 저장소에서 복제해오기

8. jrebel 비활성화하기

9. veracode greenlight plugin 설치되어있으면 제거

10. 사용하지 않는 플러그인 있으면 제거 (https://intellij-support.jetbrains.com/hc/en-us/community/posts/360000148510-Project-keeps-automatically-building-in-IntelliJ-2018-1-)

11. Settings-> Build, Execution, Deployment -> Build Tools -> Reload project after changes in the build scripts 체크박스 해제

 

 

해결

Run/Debug Configurations에서 아래 On frame deactivation: 이라고 되어있는 옵션을 'Do nothing'으로 설정해주면 된다.

 

 

위에 있는 4번과 똑같은 항목같은데, 위 4번과 똑같은 항목인데, 인텔리제이 버그인지 몰라도 탭을 열어서 설정해주면 값이 바뀌지 않는다!

 

 

탭을 보면 분명 'Do nothing'으로 체크되어 있지만, 뒷 배경화면의 On frame deactivation값은 Update classes and resources로 설정되어있다. 탭에서 Do nothing을 아무리 눌러도 변경되지 않고, 뒷 배경의 On frame deactivation을 직접 눌러 변경/해제해 주어야 값이 정상적으로 반영된다.

 

 

 

추가적인 문제

위 문제와의 연관성은 알 수 없으나, 발생한 추가적인 문제는 다음과 같다.

 

1. Run/Debug Configuration -> Build and run -> Spring Boot Class 설정시 생기는 오류

 

현재 main 클래스는 *Application.kt의 형태로, 하단 오른쪽 사진과 같이 Spring Boot Class가 정상적으로 탐색된다.

 

 

*Application 클래스를 Spring Boot Class로 지정해주고, Run/Debug Configuration 창을 빠져나온 후, 다시 들어가면 Spring Boot Class가 자동으로 바뀌면서 오류가 뜬다.

 

 

분명히 *Application으로 Spring Boot Class를 지정해주었음에도, *ApplicationKt라는 클래스로 자동 변경며 오류가 뜨고 있음을 볼 수 있다.

 

그런데 이렇게 에러가 뜬 상태에서 프로젝트를 돌려도 돌아간다.

 

 

 

결론

 인텔리제이 버그였다. 근데 왜 해당 프로젝트의 Run/Debug Configurations에만 'On Update Action'의 기본세팅이 'Update Classes and Resources'였는지는 모르겠다.

'[ 기타 ] > 잡담' 카테고리의 다른 글

BOJ 플레 달성  (0) 2024.04.14
[MySQL] 오류해결  (0) 2022.07.16
2022 sw contest 스택  (0) 2022.06.27
BOJ 골드 달성  (0) 2022.02.14