본문 바로가기
  • 분조장의 개발 블로그
카테고리 없음

WSL2는 Gradle을 support하지 않나..?

by 무아니 2021. 9. 9.

한동안 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은 조합은 사용하기 어렵나...?

댓글