Sangil's blog

https://github.com/ChoiSangIl Admin

Spring Boot profiles real,dev maven 배포하기 DEV / WEB

2020-09-10 posted by sang12


Spring Boot를 사용하다보면 real과 개발을 구분하기 위해 profiles를 많이 사용하게 됩니다.

하지만 배포할때마다 spring.profiles.active=real, spring.profiles.active=dev와 같은 형태로 변경하면서 배포하기엔 너무 불편하겠죠? 그래서 환경변수를 이용하여 배포하는 방법을 알아보겠습니다.

일단, pom.xml에 사용할 profile  환경변수를 등록합니다. 

-pom.xml

<profiles>
	<profile>
	    <id>dev</id>
	    <activation>
		<activeByDefault>true</activeByDefault>
	    </activation>
	    <properties>
		<build.profile.id>dev</build.profile.id>
		<profileActive>dev</profileActive>
	    </properties>
	</profile>
	<profile>
	    <id>prod</id>
	    <properties>
		<build.profile.id>prod</build.profile.id>
		<profileActive>prod</profileActive>
	    </properties>
	</profile>
</profiles>

activeByDefault가 true로 설정되어있는게 기본으로 셋팅 됩니다. 그래서 스프링부트에 내장되어있는 톰캣으로 프로젝트를 올릴때는,  개발로 올라라게 dev를 true로 설정하였습니다. 그리고 여기에서 중요한 부분은 <profileActivie> <-- 이부분입니다. application.properties에 해당 변수명으로 등록을 해줘야합니다. 아래 처럼 @profileActive@ 을 등록해줘야합니다. 

-application.properties
spring.profiles.active=@profileActive@

그리고 maven Build 설정에서 
Goals: clean install -DskipTests -Pdev, clean install -DskipTests -Pprod 형태로 빌드하고 만들어진 war파일에서 application.properties를 보면 -Pdev, -Pprod 옵션에 따라 개발과 리얼이 변경되는것을 확인 할 수 있습니다 :)

#maven 환경변수 명령어
REPLY