sourceCompatibility / targetCompatibility
sourceCompatibility
Java 버전과 일치하는 값으로, 컴파일에서 사용하는 JDK 버전
소스 코드에서 사용할 수 있는 Java 버전을 해당 버전 값으로 제한
targetCompatibility
생성된 클래스 파일의 버전을 제어
프로그램에서 실행할 수 있는 가장 낮은 Java 버전을 의미
만약 아래와 같이 설정한다면,
java {
sourceCompatibility = 1.6
targetCompatibility = 1.8
}
소스코드에서는 람다 표현식이나, Java 6에서 사용할 수 없는 기능은 포함될 수 없으며, Java 8 이상에서 실행되어야 하는 클래스 파일이 생성됨.
Spring Boot 프로젝트 생성 시, sourceCompatibility는 자동으로 추가되나, targetCompatibility는 추가되지 않음.
참고자료:
https://dlee0129.tistory.com/265
https://www.baeldung.com/gradle-sourcecompatiblity-vs-targetcompatibility