스프링을 사용하여 개발 할 경우 개발/테스트/운영 까지 단계에서 환경 설정들이 각각 다를 수 있다.
그중의 한 예로 데이터베이스를 들수 있다.
개발 디비 ,운영디비 ,테스트 디비 들의 정보들을 하나의 프로퍼티로 관리하다보면 많은 반복 작업이 있을 수 있다.
이러한 문제점들을 각 환경에 맞는 프로파일설정을 통하여 해결 하도록 한다.(완전한 해결책은 아님)
개발 환경은 intelliJ를 사용한다는 가정
아래 와 같이 패키지 안에 각각 디플로이 디렉토리를 생성하고 각각의 환경에 맞는 프로퍼티 설정을 해준다.
메이븐 설정파일인 pom.xml 에서 아래 와 같이 각 환경 설정 프로퍼티 파일을 추가 해준다.
<profiles>
<profile>
<id>dev</id>
<properties>
<deployment>dev</deployment>
</properties>
</profile>
<profile>
<id>local</id>
<properties>
<deployment>local</deployment>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<deployment>test</deployment>
</properties>
</profile>
<profile>
<id>op</id>
<properties>
<deployment>op</deployment>
</properties>
</profile>
</profiles>
각 프로파일 설정들은 디플로이먼트에 있는 설정 파일들과 일치하도록 해준다.
해당 프로파일들의패스를 인식 할 수있도록 pom.xml에 아래와같이 설정 해준다.
개발 환경에서 사용할 경우 IntelliJ 에서 아래와 같이 사용 할 수있다.
현재 로컬 환경에서의 프로퍼티 설정을 선택 한 후 해당 환경 설정을 사용하도록 한다.
* 만약 프로파일 설정이 동일할 경우에는 ~/.m2/setting.xml 파일에 프로파일을 설정하게 되면 프로젝트를 생성할때마다 귀찮게 프로파일을 설정 할 필요가 없다.
사용법
로컬 사용법:
Maven Projects -> Profiles -> 사용하려는 프로파일 체크
로컬에서 터미널 을 사용시
빌드 -> mvn clean install -P { local /dev / op / test }
배포 환경:
gitlab + jenkins 를 사용하는 환경 이므로 아래와 같이 빌드를 적용한다.
(jenkins 에는 maven 이 설치 되었다고 가정)
clean install -P { local / dev / op / test }
'SpringBoot' 카테고리의 다른 글
Spirng Vaadin Helloworld (0) | 2017.06.21 |
---|---|
PersistentObjectException: detached entity passed to persist (0) | 2017.06.15 |
Java8 Stream 사용 (0) | 2017.05.24 |
Java8 stream - list compare (0) | 2017.03.27 |
java8-stream (0) | 2016.10.13 |