Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- KotlinInAction
- Kotlin
- Kotlin in action 6장
- Kotlin In Action
- 13460 구슬탈출 2
- 싱글톤 컨테이너
- 객체 지향 설계와 스프링
- 스프링 핵심 원리 - 기본편
- 코틀린
- Kotlin in action 3장
- kotlin in action 정리
- 7장 고급매핑
- 스프링 컨테이너와 스프링 빈
- 스프링 핵심 원리 이해
- 코틸린인액션
- 기능개발 python
- 20055 컨베이어 벨트 위의 로봇
- spring
- 스프링 핵심 원리
- 백준 20055 컨베이어 벨트 위의 로봇
- Python
- 백준
- 고급매핑
- 코틀린인액션
- 자바 ORM 표준 JPA 프로그래밍 7장
- Kotlin in action 5장
- 백준 13460 Python
- 컨베이어 벨트 위의 로봇 Python
- 20055
- Kotlin in action 10장
Archives
- Today
- Total
기록하는 습관
[Spring] Gradle (1) - maven -> gradle 변경 본문
maven | gradle | |
id 'io.spring.dependency-management' version '1.0.11.RELEASE' |
|
springboot & gradle version
- 기존 datacenter spring boot version: 1.5.4
- 시도한 gradle version: 7.x → 빌드는 되지만, jar를 실행하면 "기본 클래스를 로드할 수 없습니다." 에러발생
- bootRepackage: 1.5 까지 사용된 스프링 부트 태스크
- bootJar(or bootWar): 스프링 부트 2.0 부터 스프링 부트 gradle 플러그인에서는 bootRepackage가 각각 jar 태스크를 확장한 bootJar와 war 태스크를 확장한 bootWar로 분리되었다.
- bootJar 는 jar 태스크를, bootWar 는 war 태스크를 비활성화한다.
- springboot 1.5.4 version은 gradle 3.x version을 필요로 한다.
- 적용한 gradle: 3.4.1
- 주의: Junit5를 사용하기 위해서는 최소 Gradle 4.7 이상이어야 함.
참고
에러
- cannot find symbol
- 원인: compile 또는 runtime시 해당 라이브러리를 읽을 수 없어서 발생하는 문제.
- 해결: build.gradle에 implementation xxx, 또는 runtimeOnly xxx등의 의존성을 추가해준다.
- 기본 클래스 com.smilegate.datacenter.Application을(를) 찾거나 로드할 수 없습니다.
- 원인: mainClassName을 인식할 수 없어서 발생하는 문제. classpath가 잘못되어 있을 가능성도 있음
- 절차
- jar 압축을 푼 뒤, 실제 class-path가 어떻게 정의 되어 있는지 확인
- jar 실행되는 프로젝트와의 차이점(기본 build.gradle로 진행시)
- 공통: springboot 1.5 version
- 차이
- gradle version (3.4.1 vs 7)
- jar.original 이 생성 되냐 안되냐 차이
- springboot version 별로 지원되는 gradle version 이 다르고, gradle 문법이 version마다 다르기 때문에 gradle 7.x → 3.4.1로 적용해주기
- .gradle 폴더를 확인해보니 적용되지 않는 것을 확인
- gradle cache 삭제
- .gradle/cache 내부의 폴더 삭제
- ./gradlew build --refresh-dependencies
- jar 압축을 푼 뒤, 실제 class-path가 어떻게 정의 되어 있는지 확인
- 해결
- gradle 3.4.1 version으로 변경
- build.gradle 파일 - org.springframework.boot plugin 추가
- build.gradle 파일 - bootRepackage에 MainClass 선언 추가
- 참고: 링크
build.gradle 설명
- id 'maven-publish'
- nexus를 업로드 하는 법. (참고: https://blog.leocat.kr/notes/2018/11/01/nexus-publish-jar-artifact-with-gradle)
의존성 확인하기
- maven
- $mvn dependency:tree
- gradle
- $gradle dependencies
'개발 > Spring' 카테고리의 다른 글
[Spring] Gradle (3) - build란? (0) | 2022.07.12 |
---|---|
[Spring] Gradle (2) - ant, maven, gradle (0) | 2022.07.12 |
Spring - JPA (3) update 쿼리와 영속성 컨텍스트 (0) | 2022.07.12 |
Spring - JPA (2) 다중성 (0) | 2022.07.12 |
Spring - JPA (1) 연관관계 (0) | 2022.07.12 |
Comments