젝트 버전업
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 시리즈는 4쇄를 기준으로 실습을 진행했다.
책이 2019년 11월에 나왔지만, 사용되는 라이브러리나 도구가 워낙 업데이트가 빨라서 2020년 12월에 최신 버전으로 업데이트하는 법을 블로그에 업로드 해주셨다.
그래서 이 글을 작성하고 있는 지금(2021년 2월)도 도구들이 더 업데이트 되었을지도 모르지만, 블로그 글을 기준으로 버전업을 해보려고 한다.
프로젝트를 최신으로 변경하는 방법은 블로그에 자세하게 설명되어 있고, 내가 변경한 부분만 간단하게 작성하려고 한다.
gradle 버전 변경하기
-
4.10.2에서 6.7.1로 변경
gradlew wrapper --gradle-version 6.7.1
-
build.gradle도 gradle6에 맞게 변경
plugins {
id 'org.springframework.boot' version '2.4.1'
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
}
group 'com.book'
version '1.0.1-SNAPSHOT'+ new Date().format("yyyyMMddHHmmss")
sourceCompatibility = 1.8
repositories {
mavenCentral()
jcenter()
}
test {
useJUnitPlatform()
}
dependencies {
implementation('org.springframework.boot:spring-boot-starter-web')
implementation('org.springframework.boot:spring-boot-starter-mustache')
// lombok
implementation('org.projectlombok:lombok')
annotationProcessor('org.projectlombok:lombok')
testImplementation('org.projectlombok:lombok')
testAnnotationProcessor('org.projectlombok:lombok')
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
implementation("org.mariadb.jdbc:mariadb-java-client")
implementation('com.h2database:h2')
implementation('org.springframework.boot:spring-boot-starter-oauth2-client') // 권한 관련
implementation('org.springframework.session:spring-session-jdbc') // 권한 관련
testImplementation('org.springframework.boot:spring-boot-starter-test')
testImplementation("org.springframework.security:spring-security-test") // 권한 관련
}
- 수정 후 gradle test를 하면 junit 에러발생
junit 코드 수정
ctrl + shift + r
단축키로 전체 코드 replace
@Test
@RunWith : 패키지 위치, 어노테이션 두개 다 변경되어서 모두 수정
SpringRunner : 패키지 위치, 어노테이션 두개 다 변경되어서 모두 수정
@After : 패키지 위치, 어노테이션 두개 다 변경되어서 모두 수정
@Before : 패키지 위치, 어노테이션 두개 다 변경되어서 모두 수정
- 모두 수정하고 테스트를 하면 다음과 같은 에러가 발생한다.
JPA
Spring Boot 2.1.10 부터 MySQL 문법 지정 방식에 변화가 있었기 때문에 DB 설정들의 변경이 필요하다.
src > main > resources > application.properties
spring.jpa.show_sql=true spring.h2.console.enabled=true spring.profiles.include=real,oauth spring.session.store-type=jdbc server.port=8080 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect spring.jpa.properties.hibernate.dialect.storage_engine=innodb spring.datasource.hikari.jdbc-url=jdbc:h2:mem:testdb;MODE=MYSQL spring.datasource.hikari.username=sa
src > test > resources > application.properties
spring.jpa.show_sql=true spring.h2.console.enabled=true spring.session.store-type=jdbc spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect spring.jpa.properties.hibernate.dialect.storage_engine=innodb spring.datasource.hikari.jdbc-url=jdbc:h2:mem:testdb;MODE=MYSQL spring.datasource.hikari.username=sa
- 수정 후 h2 console 접속되는지 확인하기
src > main > resources > application-real-db.properties
spring.jpa.hibernate.ddl-auto=none spring.jpa.show_sql=false spring.datasource.hikari.jdbc-url=jdbc:mariadb://rds주소:포트명(기본은 3306)/database명 spring.datasource.hikari.username=db계정 spring.datasource.hikari.password=db계정 비밀번호 spring.datasource.hikari.driver-class-name=org.mariadb.jdbc.Driver
spring.profiles.include
application.properties
코드 추가
spring.profiles.group.local-real=local-real, oauth
spring.profiles.group.real=real, real-db, oauth
spring.profiles.group.real1=real1, real-db, oauth
spring.profiles.group.real2=real2, real-db, oauth
Author And Source
이 문제에 관하여(젝트 버전업), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hwana/스프링-부트와-AWS로-혼자-구현하는-웹-서비스-프로젝트-버전업저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)