spring boot 2.0.2 → spring 2.4.4 로 업그레이드

2024. 1. 7. 17:08·개발/spring boot
728x90

build.gradle 파일 변경 사항 요약

  • Spring Boot 버전을 2.4.4로 업데이트
  • QueryDSL 종속성 관리 플러그인을 추가
  • QueryDSL 버전을 4.4.0으로 업데이트
  • Spring Boot, JUnit, Mockito, Hibernate의 종속성을 업데이트
  • 로깅 프레임워크를 Logback으로 업데이트
  • Jackson JSON 라이브러리를 버전 2.12.5로 업데이트
  • QueryDSL 구성을 업데이트

변경 사항 상세

buildscript:

  • Spring Boot Gradle 플러그인 버전을 2.4.4로 업데이트

plugins:

  • QueryDSL 종속성 관리를 위한 com.ewerk.gradle.plugins.querydsl 플러그인을 추가

dependencies:

  • 새로운 Spring Boot 버전에 맞게 Spring Boot 종속성을 업데이트
  • JUnit 종속성을 버전 5.8.1로 업데이트
  • Mockito 종속성을 버전 3.12.4로 업데이트
  • Hibernate 코어 종속성을 업데이트
  • PostgreSQL 런타임 종속성을 업데이트
  • Apache HttpClient 종속성을 업데이트
  • Commons IO 및 Commons Lang3 종속성을 업데이트
  • Lombok 주석 프로세서 종속성을 추가
  • 새로운 QueryDSL 버전에 맞게 QueryDSL 종속성을 업데이트
  • Apache POI 종속성을 업데이트
  • Apache XMLBeans 및 Commons Collections4 종속성을 업데이트
  • Logback 로깅 프레임워크 종속성을 업데이트
  • javax.validation 종속성을 추가
  • P6Spy Spring Boot 스타터 종속성을 추가
  • QLRM 종속성을 업데이트
  • JSON, Gson, ModelMapper 종속성을 업데이트
  • Jackson JSON 라이브러리 종속성을 업데이트

test:

  • JUnit 테스트 실행기를 JUnit Platform으로 업데이트

querydsl:

  • 새로운 QueryDSL 버전 및 디렉토리 구조를 사용하도록 QueryDSL 구성을 업데이트

bootWar:

  • WAR 아카이브 이름을 유지

1.그래들 버전 업그레이드

gradle/wrapper/gradle-wrapper.properties

distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
// 이부분을 빼고 distributionUrl=https\\://services.gradle.org/distributions/gradle-4.3-bin.zip
distributionUrl=https\\://services.gradle.org/distributions/gradle-6.8-bin.zip  
//추가

2. build.gradle 파일 설정 변경

  • 기존 파일 설정
buildscript {
	ext {
		springBootVersion = '2.0.2.RELEASE'
	}
	repositories {
		mavenCentral()
	}
	dependencies {
		classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
	}
}

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'eclipse-wtp'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'war'

group = 'com.nexpa'
version = '0.0.1'
sourceCompatibility = 1.8

repositories {
	mavenCentral()
	maven { url "<https://repo.spring.io/snapshot>" }
	maven { url "<https://repo.spring.io/milestone>" }
	maven { url "<https://repo.spring.io/libs-milestone>" }
}

def generatedJavaSrcDir = 'src/main/generated'
def queryDslOutput = file(generatedJavaSrcDir)

sourceSets {
	main {
		java {
			srcDirs = ['src/main/java', generatedJavaSrcDir]
		}
	}
}

/** QClass 생성 */
task generateQueryDSL(type: JavaCompile, group: 'build') {
	doFirst {
		delete queryDslOutput
		queryDslOutput.mkdirs()
	}
	source = sourceSets.main.java
	classpath = configurations.compile
	destinationDir = queryDslOutput
	options.compilerArgs = [
			'-proc:only',
			'-processor',
			'com.querydsl.apt.jpa.JPAAnnotationProcessor'
	]
}
compileJava.dependsOn(generateQueryDSL)

/** clean 태스크 실행시 QClass 삭제 */
clean {
	delete queryDslOutput
}

configurations {
	providedRuntime
}

dependencies {
	compile('org.springframework.boot:spring-boot-starter-data-jpa')
	compile('org.springframework.boot:spring-boot-starter-web')
	compile('org.springframework.boot:spring-boot-devtools')
	compile group: 'org.springframework.security', name: 'spring-security-core', version: '5.0.6.RELEASE'
	compile 'org.springframework.boot:spring-boot-starter-mail'
    testImplementation 'junit:junit:4.13.1'
	testImplementation 'junit:junit:4.13.1'
	providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
	testCompile('org.springframework.boot:spring-boot-starter-test')

	compile group: 'org.hibernate', name: 'hibernate-core', version: '5.3.3.Final'
	compile group: 'org.postgresql', name: 'postgresql', version: '42.2.4'

	compile("org.apache.httpcomponents:httpclient");
	compile group: 'commons-io', name: 'commons-io', version: '2.6'
	compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.8.1'

	compile 'org.projectlombok:lombok:1.18.10'

	compile group: 'com.querydsl', name: 'querydsl-core', version: '4.2.1'
	compile group: 'com.querydsl', name: 'querydsl-apt', version: '4.2.1'
	compile group: 'com.querydsl', name: 'querydsl-jpa', version: '4.2.1'

	compile('org.apache.poi:poi:3.15')
	compile('org.apache.poi:poi-ooxml:3.15')
	compile('org.apache.poi:poi-ooxml-schemas:3.15')

	compile('org.apache.xmlbeans:xmlbeans:2.6.0')
	compile('org.apache.commons:commons-collections4:4.1')

	compile('ch.qos.logback:logback-classic:1.2.3')
	compile('ch.qos.logback.contrib:logback-json-classic:0.1.5')
	compile('ch.qos.logback.contrib:logback-jackson:0.1.5')

	implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.8'
	compile 'org.qlrm:qlrm:3.0.4'

	compile group: 'org.json', name: 'json', version: '20180130'
	compile group: 'com.google.code.gson', name: 'gson', version: '2.8.5'
	compile group: 'org.modelmapper', name: 'modelmapper', version: '2.1.1'
	compile('com.fasterxml.jackson.core:jackson-databind:2.9.8')
	compile group: 'org.codehaus.jackson', name: 'jackson-core-asl', version: '1.9.13'
	compile group: 'org.codehaus.jackson', name: 'jackson-mapper-asl', version: '1.9.13'
}

// war name
bootWar {
	archiveName('nxpmss-0.0.1.war')
}

 

  • 변경 된 파일 설정
buildscript {
	ext {
		springBootVersion = '2.4.4'
		queryDslVersion = "4.4.0"
	}
	repositories {
		mavenCentral()
	}
	dependencies {
		classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
	}
}

plugins {
	id 'org.springframework.boot' version '2.4.4'
	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
	id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'
	id 'java'
}

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'eclipse-wtp'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'war'

group = 'com.nexpa'
version = '0.0.1'
sourceCompatibility = 1.8

repositories {
	mavenCentral()
	maven { url "<https://repo.spring.io/snapshot>" }
	maven { url "<https://repo.spring.io/milestone>" }
	maven { url "<https://repo.spring.io/libs-milestone>" }
}

configurations {
	providedRuntime
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-devtools'
	implementation 'org.springframework.security:spring-security-core'
	implementation 'org.springframework.boot:spring-boot-starter-mail'

	testImplementation 'org.junit.jupiter:junit-jupiter:5.8.1'
	testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
	testImplementation 'org.junit.jupiter:junit-jupiter-params:5.8.1'
	testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

	testImplementation 'org.mockito:mockito-core:3.12.4'
	testImplementation 'org.mockito:mockito-junit-jupiter:3.12.4'
	testImplementation('org.springframework.boot:spring-boot-starter-test')

	implementation 'org.springframework.boot:spring-boot-starter-tomcat'

	implementation 'org.hibernate:hibernate-core'
	runtimeOnly 'org.postgresql:postgresql'

	implementation 'org.apache.httpcomponents:httpclient'
	implementation group: 'commons-io', name: 'commons-io', version: '2.6'
	implementation 'org.apache.commons:commons-lang3'

	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'

	implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
	implementation "com.querydsl:querydsl-apt:${queryDslVersion}"

	implementation('org.apache.poi:poi:3.15')
	implementation('org.apache.poi:poi-ooxml:3.15')
	implementation('org.apache.poi:poi-ooxml-schemas:3.15')

	implementation('org.apache.xmlbeans:xmlbeans:2.6.0')
	implementation('org.apache.commons:commons-collections4:4.1')

	implementation('ch.qos.logback:logback-classic:1.2.3')
	implementation('ch.qos.logback.contrib:logback-json-classic:0.1.5')
	implementation('ch.qos.logback.contrib:logback-jackson:0.1.5')

	implementation 'javax.validation:validation-api'
	implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.8'
	implementation 'org.qlrm:qlrm:3.0.4'

	implementation group: 'org.json', name: 'json', version: '20180130'
	implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.5'
	implementation group: 'org.modelmapper', name: 'modelmapper', version: '2.1.1'

	implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.5'
	implementation 'com.fasterxml.jackson.core:jackson-core:2.12.5'
	implementation 'com.fasterxml.jackson.core:jackson-annotations:2.12.5'
}

test {
	useJUnitPlatform()
}

//querydsl 추가 시작
def querydslDir = "src/main/generated"

querydsl {
	jpa = true
	querydslSourcesDir = querydslDir
}
sourceSets {
	main.java.srcDir querydslDir
}
compileQuerydsl{
	options.annotationProcessorPath = configurations.querydsl
}
configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
	querydsl.extendsFrom compileClasspath
}

// war name
bootWar {
	archiveName('nxpmss-0.0.1.war')
}
  • 변경 된 부분
		springBootVersion = '2.0.2.RELEAS
--------- 아래 가 추가
		springBootVersion = '2.4.4' 
		queryDslVersion = "4.4.0"

// 추가
plugins {
	id 'org.springframework.boot' version '2.4.4'
	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
	id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'
	id 'java'
}

========= //기존   계속 querydsl 안되서 빼고 다른걸 넣었다
def generatedJavaSrcDir = 'src/main/generated'
def queryDslOutput = file(generatedJavaSrcDir)

sourceSets {
	main {
		java {
			srcDirs = ['src/main/java', generatedJavaSrcDir]
		}
	}
}

/** QClass 생성 */
task generateQueryDSL(type: JavaCompile, group: 'build') {
	doFirst {
		delete queryDslOutput
		queryDslOutput.mkdirs()
	}
	source = sourceSets.main.java
	classpath = configurations.compile
	destinationDir = queryDslOutput
	options.compilerArgs = [
			'-proc:only',
			'-processor',
			'com.querydsl.apt.jpa.JPAAnnotationProcessor'
	]
}
compileJava.dependsOn(generateQueryDSL)

/** clean 태스크 실행시 QClass 삭제 */
clean {
	delete queryDslOutput
}
--------- //변경
def querydslDir = "src/main/generated"

querydsl {
	jpa = true
	querydslSourcesDir = querydslDir
}
sourceSets {
	main.java.srcDir querydslDir
}
compileQuerydsl{
	options.annotationProcessorPath = configurations.querydsl
}
configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
	querydsl.extendsFrom compileClasspath
}
=========

dependencies {
//  빠진 부분2 ----
	compile('org.springframework.boot:spring-boot-starter-data-jpa')
	compile('org.springframework.boot:spring-boot-starter-web')
	compile('org.springframework.boot:spring-boot-devtools')
	compile group: 'org.springframework.security', name: 'spring-security-core', version: '5.0.6.RELEASE'
	compile 'org.springframework.boot:spring-boot-starter-mail'
    testImplementation 'junit:junit:4.13.1'
    providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
	testCompile('org.springframework.boot:spring-boot-starter-test')

//  빠진 부분2 ----

// 변경 된 부분 --
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-devtools'
	implementation 'org.springframework.security:spring-security-core'
	implementation 'org.springframework.boot:spring-boot-starter-mail'

	testImplementation 'org.junit.jupiter:junit-jupiter:5.8.1'
	testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
	testImplementation 'org.junit.jupiter:junit-jupiter-params:5.8.1'
	testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

	testImplementation 'org.mockito:mockito-core:3.12.4'
	testImplementation 'org.mockito:mockito-junit-jupiter:3.12.4'
	testImplementation('org.springframework.boot:spring-boot-starter-test')

	implementation 'org.springframework.boot:spring-boot-starter-tomcat'
// 변경 된 부분 --

===== 기존
compile group: 'org.hibernate', name: 'hibernate-core', version: '5.3.3.Final'
	compile group: 'org.postgresql', name: 'postgresql', version: '42.2.4'
---------  아래가 변경
	implementation 'org.hibernate:hibernate-core'
	runtimeOnly 'org.postgresql:postgresql'
======

====== 기존
compile 'org.projectlombok:lombok:1.18.10'
--------- 아래 변경
compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
======

======== //기존 
compile group: 'com.querydsl', name: 'querydsl-core', version: '4.2.1'
	compile group: 'com.querydsl', name: 'querydsl-apt', version: '4.2.1'
	compile group: 'com.querydsl', name: 'querydsl-jpa', version: '4.2.1'
--------- //변경
implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
	implementation "com.querydsl:querydsl-apt:${queryDslVersion}"
=========

// 3개 버전이 같아야 된다고 안되길래 맞춤
========= //기존
compile('com.fasterxml.jackson.core:jackson-databind:2.9.8')
	compile group: 'org.codehaus.jackson', name: 'jackson-core-asl', version: '1.9.13'
	compile group: 'org.codehaus.jackson', name: 'jackson-mapper-asl', version: '1.9.13'
--------- //변경
implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.5'
	implementation 'com.fasterxml.jackson.core:jackson-core:2.12.5'
	implementation 'com.fasterxml.jackson.core:jackson-annotations:2.12.5'
=========

========= //기존
--------- //변경
=========

  • @Size 어노테이션 필요 gradle
implementation 'javax.validation:validation-api'
  • 한글 깨지는 문제
//application.properties 내용 추가
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.force=true
  • dependencies 에서 버전이 올라가면서 패키지 경로가 변경
//업그레이드 된 
implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.5'
	implementation 'com.fasterxml.jackson.core:jackson-core:2.12.5'
	implementation 'com.fasterxml.jackson.core:jackson-annotations:2.12.5'

========= //기존
import org.codehaus.jackson.type.TypeReference;
import org.codehaus.jackson.map.*;
--------- //변경
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
=========
728x90

'개발 > spring boot' 카테고리의 다른 글

Refused to apply style from '<URL>' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.  (0) 2024.03.21
spring boot 이미지 경로 설정 방법 WebMvcConfigurer 사용  (0) 2024.03.11
Preconditions 사용 할 때 그래들 설정  (0) 2023.04.20
spring 인터페이스의 구현체를 동적으로 선택  (0) 2022.12.12
spring webjars 적용 방법  (0) 2022.10.18
'개발/spring boot' 카테고리의 다른 글
  • Refused to apply style from '<URL>' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
  • spring boot 이미지 경로 설정 방법 WebMvcConfigurer 사용
  • Preconditions 사용 할 때 그래들 설정
  • spring 인터페이스의 구현체를 동적으로 선택
nix-be
nix-be
  • nix-be
    NiX
    nix-be
  • 전체
    오늘
    어제
    • 홈
      • 책
        • 오브젝트
      • 성장
        • jpa Querydsl 정리
        • 코딩테스트
      • 인프라
        • linux
        • vmware
        • CI&CD
        • 네트워크
        • docker
      • 개발
        • spring boot
        • JPA
        • java
        • thymeleaf
        • 이슈
        • jquery
        • javascript
        • 안드로이드
      • DB
        • postgreSql
      • 잡다한것
        • 프로그램
        • 일상 관련
      • 회사
        • 티
  • 블로그 메뉴

    • 홈
    • 개발
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
nix-be
spring boot 2.0.2 → spring 2.4.4 로 업그레이드
상단으로

티스토리툴바