개발/개발노트

gradle build시 jdk version 설정

보리ing 2020. 6. 29. 14:37

jdk 1.8로 작업해오다 jdk11을 이용해 프로젝트를 진행해보기로 하였다.

 

도중 생긴 문제가 빌드시

Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)

와 같이 gradle JVM 버전이 맞지 않는 것이다.

 

만약 intelliJ와같은 환경이면

 

설정 -> Build,Excution, Deployment -> Build Tools -> Gradle 에서

 

 

Gradle JVM을 설정하면 된다.

 

하지만 배포환경이 Jenkins를 통해 빌드하는 경우

다른프로젝트들은 다 1.8인데 한 프로젝트만 11이면 문제가 생긴다.

 

jenkins 서버에 jdk11 설치된 상태에서

 

시도

 - jenv를 통해 해당 프로젝트만 jenv java11를 잡았다. -> 해결안됨 

 - 환경변수도 확실히 잡아보자 -> 해결안됨

 

시도 2

 - build.gradle 에

sourceCompatibility = 11 targetCompatibility = 11

 와 같이 설정해보자

-> 해결안됨

 

시도 3

gradle 명령어에 jvm 경로 옵션을 설정해보자

기존

 ./gradlew bootjar 

변경

./gradlew bootJar -Dorg.gradle.java.home=JDK_PATH

빌드성공

 

 gradle로 빌드하기 때문에 해당 폴더에 할당된 jdk 영향보다는 gradle의 global설정을 영향받나보다.

따라서 빌드시 추가옵션을 통해 해결하였다.

 

추가.

또한 프로젝트 or 모듈의 버전을 변경하였을 때 해당 language level을 놓칠때가 있다.

이 부분에 대한 변경은

해당 프로젝트 or 모듈 우클릭 > settings 에서 변경이 가능하다.