. multi-project-training
├── a-common
│ └── src
│ └── main
│ ├── java
│ └── resources
│ └── application-a.yml
├── b-api
│ └── src
│ └── main
│ ├── java
│ └── resources
│ └── application-b.yml
└── c-app
└── src
└── main
├── java
└── resources
├── application-auth.yml
├── application-device.yml
└── application.yml
위와 같은 형태를 가지는 multi-project-training
프로젝트에서 각 하위 프로젝트 a-common
, b-api
, c-app
의 속성파일(application-*.yml
)을 기준으로 애플리케이션 프로파일을 배포환경('local', 'dev', 'beta', 'major')으로 구성하기 위한 프로젝트다.
c.name: c-app
logging:
level:
io.honeymon.springboot.multi.app: DEBUG
spring:
profiles:
include:
- a
- b
- auth
- device
# 프로파일 덮어쓰기는 안된다. 궁리했던 것처럼은 안되겠지만, 아래와 같은 방법은 사용가능하다.
---
spring.profiles: local
c.name: c-app-local
spring:
profiles:
include:
- a-dev
- b-beta
- device-beta
- auth-beta
---
spring.profiles: dev
c.name: c-app-dev
spring:
profiles:
include:
- a-dev
- b-dev
- device-dev
- auth-dev
---
spring.profiles: beta
c.name: c-app-beta
spring:
profiles:
include:
- a-beta
- b-beta
- device-beta
- auth-beta
---
spring.profiles: major
c.name: c-app-major
spring:
profiles:
include:
- a-major
- b-major
- device-major
- auth-major
애플리케이션은 실행시 각 실행환경에 따라 프로파일을 활성화(spring.profiles.active
)할 수 있도록 구분지을 수 있다.