jvm언어관련/Spring(SpringBoot)

springboot maven profiles 설정

055055 2019. 5. 1. 20:44
반응형

springboot에서 개발시 local, staging, production으로 나눠서 개발환경을 구성해야 하는 경우가 있습니다.

그럴 때 maven에서 줄 수 있는 설정입니다.

 

<build>
        <resources>
            <resource>
                <directory>src/main/resources/deployment/${deployment}</directory>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <executable>true</executable>
                </configuration>
            </plugin>
        </plugins>
        <finalName>springbootTest</finalName>
    </build>


    <profiles>
        <profile>
            <id>production</id>
            <properties>
                <deployment>production</deployment>
                <maven.test.skip>true</maven.test.skip>
            </properties>
        </profile>
        <profile>
            <id>staging</id>
            <properties>
                <deployment>staging</deployment>
            </properties>
        </profile>
        <profile>
            <id>local</id>
            <properties>
                <deployment>local</deployment>
            </properties>
        </profile>
    </profiles>

 

먼저 profiles 부터 살펴보면

저는 local, staging, production 3가지로 환경을 나눠서 구성 했습니다.

각 profile 마다 deployment라는 변수에 각 환경 이름을 지정해놨습니다.

 

그리고 <directory>src/main/resources</directory>는 기본적으로 설정해야 하는 부분이고

선택된 profile의 resource가 classpath에 들어가도록 <directory>src/main/resources/deployment/${deployment}</directory>

를 추가 합니다.

 

실제 나뉘어진 loca, staging, production 디렉토리 구성입니다.

개발환경에 따른 환경설정을 알맞게 설정해주면 됩니다.

 

실제 배포시, 알맞은 환경을 선택하여 build 해주면 됩니다.

 

반응형