gradle build시 jdk version 설정
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 에서 변경이 가능하다.