Spring Framework 4.5 에서 Spring Boot 2.7로 전환을 했다.
그리고 Spring Boot 2.x 호환성을 고려해서 자바 버전도 JDK8에서 JDK11로 변경했다. (고 생각함)
homebrew를 이용해서 자바 11을 설치했고 Intellij도 같이 변경했다.
그리고 시간이 지나서 pom.xml을 봤더니 compiler.source, compiler.target이 1.8로 설정되어 있어 모두 버전을 바꾼게 아니구나 생각이 들었다. 그래서 이번 기회에 수정하면서 다시 정리하려고 한다.
1. Spring Boot의 경우는 properties에 자바 버전을 추가해주면 된다.
properties는 Spring Boot 애플리케이션의 설정을 정의하는데 사용한다.
그럼 Spring Boot가 자동으로 읽어들여 애플리케이션 동작을 구성한다.
<properties>
<java.version>11</java.version>
</properties>
2. IDE(Intellij) 설정 변경
프로젝트와 IDE의 JDK 버전을 일치시켜줘야 한다.
Intellj의 경우, Open Module Settings 에서 Project와 Module의 Java 버전을 변경할 수 있다.
Project 설정으로 하위의 module의 디폴트 값을 설정할 수 있다.
Module 설정을 따로 하게되면 해당 module만 다른 SDK 값을 설정하게 된다.
Project의 SDK 수정
Module의 SDK 수정
3. Java 코드 수정
새로운 Java 버전에서 추가됨에 따라 depracated되거나 더 이상 사용할 수 없는 코드를 수정해야 한다.
IDE나 Terminal에서 clean-build 하면 경고나 에러로 문제 상황을 알 수 있다.
4. 빌드 컴파일러 설정 확인
프로젝트의 빌드 도구 설정에서 컴파일러를 변경해야 한다. -> 이 부분 JDK 버전 변경이 빠졌었다.
Maven이나 Gradle과 같은 빌드 도구를 사용하는 경우, 해당 설정을 확인하고 변경해야 한다.
추가로, 여기서 Spring Boot가 자동으로 설정해주는 기능들이 있다.
spring-boot-maven-plugin을 build 에 등록했다면, maven-compiler-plugin도 포함된다.
maven-compiler-plugin의 configuration으로 다음 maven.compiler.source, maven.compiler.target은 java.version에 의해 자동으로 지정된다.
따라서 이미 설정된 값을 또 설정하게 해서 불필요한 코드를 없애는 것이 낫다고 생각한다.
또한 sourceEncoding 도 Spring Boot는 기본이 UTF-8로 인코딩하기 때문에 해당 라인도 일반적으로는 불필요한다.
따라서 Spring Boot에서 Maven의 JDK 최종 변경은 다음 처럼 바뀌어야 한다.
java.version만 설정해주면 된다.
만약 Spring Boot가 아니면 하나씩 설정해주는 것이 필요하다.
참고
'기술' 카테고리의 다른 글
redisson-spring-boot-starter란 (0) | 2024.08.12 |
---|---|
redisTemplate이란 (0) | 2024.08.12 |
Maven을 이용한 웹 어플리케이션 생성 및 설정 (0) | 2022.07.23 |
Maven이란? (0) | 2021.01.08 |
RHEL7의 malloc (0) | 2021.01.03 |