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 |