IntelliJ 에서 Plugins 설정 충돌로 인해 IntelliJ 가 먹통이 된 것을 해결하는 과정이다. 필자는 Macbook 2019 와 Jetbrains 를 활용하여 IntelliJ 를 설치하였다.
1. 원인
gRPC 사용을 위해 Plugins 설치중에 Protobuf 를 설치하였는데, 주의사항을 읽지 않고 설치한 바람에 IntelliJ 를 재실행하였을 때 먹통이 되었다. IntelliJ 를 강제로 종료한 후에 재실행 해도 먹통이었다. 다음은 주의 사항이다.
[!WARNING] This plugin is not compatible with Jetbrains Official Protobuf Plugin bundled in 2021.2 and later. You should disable Protocol Buffer and gRPC to use this plugin.
2021.2 과 그 이후에 나온 버전에는 Jetbrains 에서 공식적으로 지원하는 Protobuf Plugins 가 제공되기 때문에 해당 플러그인을 사용하기 위해서는 Protocol Buffer 와 gRPC 를 제거해야 한다고 한다. 필자는 2024.03 버전을 사용중이기 때문에 플러그인이 추가가 되어 있는 상황이었다.
2. 해결방법
- 마지막에 설치한 플러그인이 뭔지 찾아야한다. (충돌 원인)
- 플러그인이 설치되어 있는 디렉토리로 이동한다.
- 해당 플러그인을 삭제한다.
- 재실행한다.
2.1 로그 확인하기
마지막에 설치한 플러그인을 찾기 위해선 로그를 까서 보면 된다. 필자는 마지막에 어떤 플러그인을 설치했는지 기억하고 있지만, 혹시 모를 상황을 대비하여 로그를 보기로 하였다. IntelliJ 에서 로그를 보는 방법은 두가지가 있는데 필자는 Jetbrains 를 활용하여 로그를 확인하였다.
1. 터미널을 활용하여 로그 보기
$ cat ~/Library/Logs/JetBrains/IntelliJIdea<버전>/idea.log | grep PluginManager
2. Jetbrains 를 활용하여 로그 보기
터미널을 활용한 디렉토리 구조와 동일하다. 로그 파일 표시를 눌러 디렉토리 이동후에 idea.log 파일을 열어보면 오류가 난 로그를 확인할 수 있는데 필자는 다음과 같은 오류가 출력되었다.
2025-01-07 14:05:52,250 [ 104554] SEVERE
- #o.j.c.AsyncPromise
- Cannot create class io.kanro.idea.plugin.protobuf.lang.ProtobufParserDefinition
(classloader=PluginClassLoader
(plugin=PluginDescriptor(name=Protobuf, id=io.kanro.idea.plugin.protobuf, descriptorPath=plugin.xml,
path=~/Library/Application Support/JetBrains/IntelliJIdea2024.3/plugins/idea-protobuf-plugin, version=2.0.2, package=null, isBundled=false)
SERVE 는 심각한 오류임을 나타내고 io.kanro.idea.plugin.protobuf 가 문제의 플러그인임을 확인 할 수 있다. 또 해당 플러그인의 경로는 ~/Library/Application Support/JetBrains/IntelliJIdea2024.3/plugins/idea-protobuf-plugin 임을 알 수 있다.
2.2 플러그인 삭제하기
플러그인의 경로를 알게 되었으니 해당 파일을 삭제해주면 된다. 먼저 plugins 가 설치되어 있는 디렉토리로 이동한 후에, 해당 플러그인을 삭제한다. 그 다음 IntelliJ 를 재 실행하게 되면 정상적으로 작동하는 것을 볼 수 있다.
$ cd ~/Library/Application\ Support/JetBrains/IntelliJIdea2024.3/plugins
$ rm -rf idea-protobuf-plugin
3. 얻은점
플러그인 설치시에 해당 플러그인이 요구하는 조건을 먼저 확인해야한다는 것과 동시에 IntelliJ 에서의 로그를 직접 까 볼 수 있는 시간을 가지게 되어 다음에도 플러그인 오류가 날 경우 당황하지 않고 쉽게 해결할 수 있을 것 같다.
'Error' 카테고리의 다른 글
RKE2 클러스터 연결 이슈 (CrashLoopBackOff) (0) | 2024.12.10 |
---|---|
[Error] JSTL 설정 오류 (0) | 2024.05.13 |