프로젝트를 하면서 오래된 버전의 프로젝트가 있었는데 버전을 올리고 싶었습니다.
(버전이 낮아서 진행하고자 했던 부분이 막혔던 기억)
그래서 버전 마이그레이션을 경험하고자 진행했던 내용을 기록해두었습니다.
1. QueryDsl
4.3.1 → 5.0.0 변경시도
- 빌드 문제없음
- jar 실행 잘되
추가 확인된 내용
- 인텔리제이 2019.X 사용: 그레이들 플러그인 “com.ewerk.gradle.plugins.querydsl” 사용
- 인텔리제이 2020.X 사용: 그레이들 annotationProcessor 사용 (단 gradle 버전 5 이상 사용)
2. gradle
4.10.2 → 6.9.2으로 변경
참고내용
- 스프링 부트 2.3 부터 그레이들 6.3+ 이상을 요구한다
- NoClassDefFoundError 발생 시 gradle 버전을 5.X 이후 버전으로 변경 필요
annotationProcesso 사용 시 querydsl build.gradle 추가 내용
implementation group: 'com.querydsl', name: 'querydsl-jpa', version: querydslVersion
implementation group: 'com.querydsl', name: 'querydsl-apt', version: querydslVersion
implementation group: 'com.querydsl', name: 'querydsl-core', version: querydslVersion
annotationProcessor group: 'com.querydsl', name: 'querydsl-apt', version: querydslVersion
annotationProcessor group: 'com.querydsl', name: 'querydsl-apt', version: querydslVersion, classifier: 'jpa'
annotationProcessor("jakarta.persistence:jakarta.persistence-api:2.2.3")
annotationProcessor("jakarta.annotation:jakarta.annotation-api:2.0.0")
여기서 이상한 부분은 annotationProcessor로 jakarta를 추가했는데 버전을 위처럼 안하면 (최신버전 사용) 아래 에러가 발생NoClassDefFoundError
implementation group: 'com.querydsl', name: 'querydsl-jpa', version: querydslVersion implementation group: 'com.querydsl', name: 'querydsl-apt', version: querydslVersion implementation group: 'com.querydsl', name: 'querydsl-core', version: querydslVersion annotationProcessor group: 'com.querydsl', name: 'querydsl-apt', version: querydslVersion annotationProcessor group: 'com.querydsl', name: 'querydsl-apt', version: querydslVersion, classifier: 'jpa' annotationProcessor("jakarta.persistence:jakarta.persistence-api:2.2.3") annotationProcessor("jakarta.annotation:jakarta.annotation-api:2.0.0")
3. jdk
8 → 11 변경
lombok version 1.18.6 → 1.18.20 변경
추가된 라이브러리
implementation group: 'org.yaml', name: 'snakeyaml', version: '1.31'
implementation group: 'org.javassist', name: 'javassist', version: '3.25.0-GA''Backend' 카테고리의 다른 글
| 윈도우 PC 개발서버로 구축하기 (0) | 2022.10.31 |
|---|---|
| 공공데이터 날씨 API 활용 (0) | 2022.10.28 |
| Telegram API - PHP (0) | 2022.10.28 |
| 날짜/시간 클래스 정리 (java.time) (0) | 2022.10.28 |
| JPA Specification 활용하여 다중 조건 쿼리문 구현 (0) | 2022.10.28 |