한동안 WSL2 + Gradle 조합으로 프로젝트를 생성하려고 했었다. 사용한 IDE는 VSCode, Intellij IDEA 두 가지인데 시도한 바로는 둘 다 정상적으로 프로젝트를 생성하지 못한다.
1. VSCode (Gradle 플러그인 설치)
Windows + Maven/Gradle -> 정상적으로 생성됨
WSL2 + Maven -> 정상적으로 생성됨
WSL2 + Gradle -> 오류 발생 (검색해보면 잘 생성되는 분도 있던데 나는 프로젝트 생성하자마자 모든 import에서 빨간 줄로 오류가 발생했고 해결되지 않았다.)
2. Intellij IDEA
Windows + Maven/Gradle -> 정상적으로 생성됨
WSL2 + Maven -> 시도 안해봄
WSL2 + Gradle -> 오류 발생 (Intellij를 2021.2월 버전으로 업데이트하면 된다던데 나는 여전히 오류가 발생했다)
이슈 읽어보기
Windows Gradle Build fails on WSL2 (\\wsl$) directory · Issue #14725 · gradle/gradle
Expected Behavior gradle build succeeds Current Behavior Gradle could not start your build. > Could not create service of type FileHasher using BuildSessionServices.createFileHasher(). > java...
github.com
2020년 10월에 Gradle 깃헙에 올라온 이 이슈를 해석해서 읽어보면 Intellij에서 WSL2을 사용할 수 없는 이유는 WSL2에서 윈도우의 gradle이 작동되지 않기 때문이므로 IDE때문이 아닌 WSL2의 시스템상 이슈인 것 같다.
해석
당신은 "왜 wsl에 설치된 그래들을 사용하지 않는지?"라고 생각할 수 있다. 그게 내가 하고싶은 일이지만 Intellij는 WSL2 내에서 gradle 사용을 지원하지 않으며 Java/Kotlin에 대해 VScode가 지원하는 것은 기본적으로 터미널로 nodepadd++을 여는 것과 같으므로 사용할 수 없다. IDE가 제대로 작동하려면, JetBrains가 몇 년이 걸릴 수 있는 최종 수정을 할 때까지 windows의 gradle이 wsl2 디렉토리에서 작동해야 한다. /mnt/c 디렉토리도 사용할 수 없다. 이건 inotify가 기능하지 않게 한다. 이게 무슨 뜻이냐면 inotify(파일 이벤트에 응답하는 모든 Linux 명령줄 도구)가 제대로 작동하지 않는다는 뜻이다. Linux 파일 시스템 외부에서 --project-cache-dir도 변경할 수 없다. Intellij는 이 기능을 지원하지 않는다.
그러므로 Intellij를 사용하려면 기본적으로 wsl2 개발을 gradle로 중단하기 때문에 해결 방법이나 해결 방법이 매우 시급하다.
결국 WSL2+Maven 으로 프로젝트 생성할게 아니면 WSL2을 쓰는 대신 Windows 환경에서 개발해야되나?
진짜 WSL2+Gradle은 조합은 사용하기 어렵나...?
댓글