티스토리 뷰
요즘 JAVA 버전이 참 정신없이 나오고 있다. 6개월에 한번씩 버전업데이트라니... 유료화 되면서 구독형 라이센스니 뭐니 해가지고 신경써야 되는게 늘었다... 개발환경을 구성해야 하는 입장에서는 발빠르게 대응을 해야하는데 쉽지 않다.
꽤 오랜기간 JAVA 8을 사용하다가 이제 놓아주고 JAVA 11로 넘어가야하는 상황이다. OpenJDK를 써야 하지만 자바 애플릿같은걸 나는 쓰지 않기 때문에 큰 무리는 없게 전환이 가능할 것으로 예상이 되었다. 실제로도 Oracle JDK냐 OpenJDK냐는 migration을 하는데 크게 영향이 없었다. 그만큼 OpenJDK의 성능이나 기능 모두 문제없이 성장했다.
new feature 들을 확인해 봐도 기존의 8버전을 사용하고 있던 것과 비교를 했을때 큰 차이는 발견하지 못했다.
직접 migration을 수행하며 오류를 수정해가면서 조치했는데 그 수정한 부분에 대해서 간략히 살펴보자.
jdk version up
가장 먼저 해야 할 일은 프로젝트의 jdk version을 11로 변경하는 것이다.
maven 프로젝트라 pom.xml의 properties 부분만 바꿔주면 된다.
<java.version>11</java.version>
주의할점은 여지껏은 jdk 1.6, 1.7 이런식으로 버전이 변경되어서 11버전은 1.11 으로 생각할수가 있는데 11이다.
maven plugin version upgrade
maven compiler plugin 도 변경을 해줘야 한다. 기존에 jdk 8을 사용할때는 maven compiler plugin을 3.1 version을 사용했는데 jdk11 부터는 적어도 3.7 버전 이상을 사용해야 한다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<compilerVersion>${java.version}</compilerVersion>
<encoding>${encoding}</encoding>
</configuration>
</plugin>
3.8.0 으로 교체!
dependency add
jdk11에서는 jaxb dependency가 사라졌다. 즉 기존에는 jdk가 설치되어 있으면 jaxb를 따로 종속성 추가를 해주지 않아도 되었었는데 jdk11 부터는 별도로 넣어줘야 한다는 것이다.
<!-- https://mvnrepository.com/artifact/javax.xml/jaxb-api -->
<dependency>
<groupId>javax.xml</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.1</version>
</dependency>
필자는 종속성이 제거된 것은 이게 다였지만 이런식으로 jdk 11에서 누락된 java 종속성은 다음과 같다.
- jaxb-core
- jaxb-impl
- javax.activation
- javax.annotation-api
- asm
이것들을 사용하고 있는 부분이 있다면 jdk11 부터는 별도로 추가해주도록 하자.
끝!
'Lang > Java' 카테고리의 다른 글
JWT payload (claims, body) 부 암호화 및 복호화 방법 (0) | 2020.12.23 |
---|---|
CSV 파일 Univocity Parsers 이용해 간단히 파싱하기 (0) | 2020.10.19 |
Client IP IPv4 형식으로 획득하는 방법 (0) | 2020.06.12 |
java.awt.HeadlessException : no x11 display variable was set 오류가 발생할 때 해결방법 (0) | 2020.05.07 |
CORS (Cross-Origin Resource Sharing) 문제 filter로 해결하기 (0) | 2020.04.28 |