반응형
어플리케이션을 하나 출시하기 위해서, 세팅되는 작업환경은 보통 아래와 같을 것이다.
Local, Dev, QA, Live
보통 DB정보와, Server to Server를 이용하는 API의 URL은 각 환경마다 다를 가능성이 매우 크다.
하지만, 매번 배포할때마다 이것을 수정하는 것은 매우 귀찮은 일이고, 비효율적이다.
(물론 이렇게 쓰는사람이 있을까 싶긴 하다;;)
Maven의 Profile 관리 기능과 War Plugin을 이용하면, 매우 편리하게 설정파일 등을 폴더에 넣어두고
각 환경에 맞게 -P 옵션만으로, 원하는 환경이 세팅되게 하는 것이 가능하다.
[pom.xml]
<profiles> <profile> <id>dev</id> <build> <plugins> <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <containerConfigXML>src/main/webapp/META-INF/dev/context.xml</containerConfigXML> <webResources> <resource> <directory>src/main/webapp/META-INF/dev</directory> <!-- 현재 프로젝트의 폴더 위치 --> <filtering>true</filtering> <!-- 여기서는 그냥 true인데, 특정 파일만을 필터링 하는 기능도 지원 --> <targetPath>META-INF</targetPath> <!-- 배포가 된 후 폴더의 위치 --> </resource> </webResources> </configuration> </plugin> </plugins> </build> </profile> ... </profiles>
대충 위와 같이 context설정은 가능하고, properties나 logging관련 파일들도 resource element를 만들어서 참조하게 하면,
-P 만으로 각 환경에 맞게 리소스가 컨트롤이 가능함.
작년에 했던 것들인데 이제서야 정리...
반응형
'개발 > Maven' 카테고리의 다른 글
[Plugin] Tomcat7 Maven Plugin (0) | 2016.06.11 |
---|---|
[Maven] Artifact를 이용한 String형태의 버전 비교 (0) | 2016.06.11 |
[Nexus] 설치 및 구성 (0) | 2016.06.11 |
[Nexus] Deploy 및 프로젝트 공유 (0) | 2016.06.11 |
[Maven] Nexus에 Deploy시에 포함된 소스까지 Deploy하기 (0) | 2016.06.11 |