maven pom.xml 에서 개발/운영 환경 나누기

potato·2021년 7월 18일
0

JAVA

목록 보기
2/2

프로젝트를 진행하다가 개발환경의 설정파일과 운영환경의 설정파일이 다를 경우
소스에서 if 문으로 분리하거나, 특정 시스템환경 변수값으로 처리하는 방법도 있지만

소스내에 그 부분을 추가하면, 왠지 좀 없어보인다.

이럴 경우 각 환경(개발,운영,테스트)별로 config파일을 나눠서 관리한 후,
maven의 profile을 이용해서 war파일을 build하는 방법이있다.

profile은 적당한 구문으로 나누기 나름

  • 개발환경(PC) : local
  • 테스트환경( 테스트서버 ) : dev
  • 운영환경( 운영서버 ) : real
  1. 아래와 같이 관리하고자 할 resource 나누고 경로를 추가한다.
<build>
   <resources>
        <resource>
           <-- 공통으로 참조하는 config는 여기에 위치 -->
           <directory>src/main/resources</directory>
        </resource>
        <resource>
            <--  환경별로  폴더에 여기에 위치 -->
            <directory>src/main/resources-${env}</directory>
       </resource>
    </resources>
</build>
  1. profile에 각 환경을 추가한다.
<profiles>
    <profile>
        <id>local</id>
        <activation>
            <!-- 빌드시 profile값을 안 넣어줄 경우 이 값을 default 하겠다는 의미 -->
            <activeByDefault>true</activeByDefault>
         </activation>
      <properties>
          <env>local</env>
      </properties>
    </profile>
    <profile>
        <id>dev</id>
      <properties>
          <env>dev</env>
      </properties>
    </profile>
    <profile>
        <id>real</id>
        <properties>
            <env>real</env>
        </properties>
    </profile>
</profiles>
  1. maven 명령 수행시 아래와 같이 -P 옵션을 사용해서 빌드를 수행한다.
mvn clean package -P dev     
profile
안녕하세요~

0개의 댓글