티스토리 뷰





항상 개발은 하다보면 로컬환경에서 먼저 테스트를 하게되고 

개발, 알파, 스테이징, 운영에 순차적으로 테스트 및 배포를 하게 된다.


이렇게 개발환경이 바뀔때마다 DB접속정보와 같은 설정들을 매번 바꿔줘야 한다면 정말 불편할 것이다.


이런 문제들을 해결하고자 메이븐 프로젝트는 Profiles라는 기능을 제공한다.


Maven Profiles란?

  • 특정 Build 환경에 맞춘 리소스의 재배치 재배치 및 환경에 대한 옵션 설정 등을 실행할 수 있다.

  • 위에 설명 한 것과 같이 보통 빌드 환경을 개발 / 알파 / 스테이징 / 운영 시스템 단위로 구분한다고 했을때, 각 단계에서 필요로 하는 설정 정보나 리소스 파일들을 배치시키는 역할을 한다고 보면 된다. 이렇게 배포 환경 별 빌드 환경을 재구성 시킬 수 있는 방안을 Profiles 통해서 작성할 수 있다.


우리가 앞에서 말했던 문제들을 기 기능으로 해결해보자.


1. resources 폴더 생성 및 설정 파일 추가

테스트를 위해 simpleproject라는 메이븐 프로젝트를 새로 생성하였다.

여기에 src/main/resources 폴더를 추가한 후, 개발환경별로 폴더를 따로 만들었다.(dev,alpha,real)

그 이후에 설정 파일을 넣어주었다.(db.properties)



2. 설정파일 내용(db.properties)

db.properties에 각 개발환경에서 사용할 DB접속 정보를 넣어주었다.

dev환경의 경우 다음과 같다.




3. pom.xml 설정


먼저 개발환경의 pom.xml 파일의 project태그 안에 Profiles 태그를 추가한다.

각 Profile별 이름을 설정한다.



그 다음으로 빌드할때 어떤 디렉터리를 사용할지 설정한다.



마지막으로 빌드설정을 따로 하지 않았을때 어떤 개발환경을 Default로 사용할지 설정한다.






4. 빌드 설정


이제 빌드를 해볼텐데 메이븐 빌드를 할때 -P 옵션으로 어떤 개발환경을 사용할지만 적어주면 된다!

예) mvn clean package -P dev


메이븐 프로젝트를 빌드한 후에 빌드된 경로로 가서 -P dev 옵션을 줬을때 어떤 db.properties를 가져왔는지 확인 해보자.



이렇게 dev옵션을 줬을때 resource/dev 폴더에 넣어둔 설정 파일을 제대로 가져온 것을 확인 할 수 있다!

예제소스: https://github.com/porys/MavenProfiles


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함