일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- gcp
- gradle
- 카카오 공채
- 2019 KAKAO BLIND RECRUITMENT
- 2020 카카오 공채
- 2018 KAKAO BLIND RECRUITMENT
- 프로그래머스
- 2018 KAKAO BLIND RECRUITMENT 1차
- CS 스터디
- 자바
- c++
- bfs
- 비트마스크
- 2020 KAKAO BLIND RECRUITMENT
- 백준
- 부스트코스
- 2018 카카오 공채
- map
- 2019 카카오 공채
- 2018 카카오
- set
- dfs
- Java
- 삼성 SW 역량테스트
- 삼성 SW 기출문제
- Baekjoon
- 카카오
- 알고리즘
- 젠킨스
- 2019 카카오 개발자 겨울 인턴십 코딩테스트
Archives
- Today
- Total
아무코딩
gradle의 profile(개발용/배포용)을 분리하여 보자 본문
이전에 프로젝트의 원활한 배포를 위해 자동배포를 설정했었다.
하지만 문제가 있었다. 배포를 위한 서버용 db와 개발시 사용하는 db의 url 이나 나뉘어지는 설정이 많은데 그때마다
application.yml에서 설정을 변경한뒤 실행 할 수는 없었다.
그래서 간단하게 내가 분리한 방법을 설명하고자 한다.
먼저 resource 분리
공통되는 부분은 resources폴더에 두고 application.yml 파일은 분리한다.
resources-dev/application.yml
spring:
profiles:
active: dev # 기본 환경 선택
--- # dev 환경
spring:
profiles: dev
datasource:
url: jdbc:mysql://localhost:3306/amitie_db?serverTimezone=UTC&characterEncoding=utf8
driver-class-name: com.mysql.cj.jdbc.Driver
username: dongwook
password: dongwook
mybatis:
type-aliases-package: com.project.amitie.mapper
mapper-locations: mybatis/mapper/**/*.xml
# SQL Log 볼 때 사용하는 옵션
logging:
level:
jdbc.sqlonly: info
org.springframework.web: DEBUG
com.zaxxer.hikari.HikariDataSource: warn
resource-release/application.yml
spring:
profiles:
active: release # 기본 환경 선택
--- # 운영 환경
spring:
profiles: release
datasource:
url: jdbc:mysql://{서버ip주소}:3306/amitie_db?serverTimezone=UTC&characterEncoding=utf8
driver-class-name: com.mysql.cj.jdbc.Driver
username: dongwook
password: dongwook
mybatis:
type-aliases-package: com.project.amitie.mapper
mapper-locations: mybatis/mapper/**/*.xml
gradle 설정
build.gradle 파일에 다음과 같이 내용을 추가한다.
ext.profile = (!project.hasProperty('profile') || !profile) ? 'dev' : profile
sourceSets {
main {
resources {
srcDirs "src/main/resources", "src/main/resources-${profile}"
}
}
}
기본적으로 default로 dev를 사용하도록 하고 입력으로 들어온 값으로 리소스폴더를 매핑시켜줍니다.
젠킨스 설정
젠킨스에서 빌드시 위와같이 profile명을 주입하여 실행하면 resource-release에 있는 yml이 실행된다.
'Spring+웹' 카테고리의 다른 글
Invalid bound statement (not found) 에러 (0) | 2020.06.18 |
---|---|
[스프링] 이클립스 톰캣 설정(Mac OS) (0) | 2020.05.13 |
[스프링] AOP 와 프록시 패턴 (0) | 2020.05.13 |
[스프링] DI 방식 두가지 비교 (생성자 vs 세터 메서드) (0) | 2020.05.12 |
스프링 DI (0) | 2020.04.26 |
Comments