환경에 따라 빌드 다르게 하기(springboot maven)

jay·2022년 7월 1일
0

환경에 따라 빌드 다르게 하기

홈페이지의 admin에서 로그인을 하려고 하는 순간 메일이 보내지지 않는 오류가 발생을 하였다.

확인결과 local 환경과 prod 환경을 구분하지 않고 local환경에서 빌드가 되어 생긴 오류였다.
이것을 해결하기 위해서는 각 환경마다 빌드가 다르게 되어야 할 것이다.

maven 프로젝트에서 환경마다 다르게 빌드를 진행하려면 profile을 사용하면 쉽게 해결된다.

application.properties

//spring.profiles.active = @{변수}@
spring.profiles.active=@activatedProperties@
#spring.profiles.active=prod

#mybatis
mybatis.type-aliases-package=com.posco.model
mybatis.mapper-locations=mappers/**/*.xml
mybatis.configuration.map-underscore-to-camel-case=true

#logger
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) --- [ %thread{10} ] %cyan(%logger{20}.%M:%L) : %msg%n
logging.level.root=INFO

spring.profiles.active를 수정해 주었다. 환경에 따라서 activedProperties가 변하는 것을 확인 할 수 있다.
application.properties을 수정 후 pom.xml을 수정해 주어야 한다.
activedProperties는 개발자 자신이 붙인 변수이기에 이 파일만 수정해 주면 오류를 발생시킨다.

pom.xml

<profiles>
		<profile>
			<id>local</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<properties>
					<activatedProperties>local</activatedProperties>
			</properties>
		</profile>
		<profile>
			<id>dev</id>
			<properties>
				<activatedProperties>dev</activatedProperties>
			</properties>
		</profile>
		<profile>
			<id>prod</id>
			<properties>
				<activatedProperties>prod</activatedProperties>
			</properties>
		</profile>
		<profile>
			<id>stage</id>
			<properties>
				<activatedProperties>stage</activatedProperties>
			</properties>
		</profile>
	</profiles>

위의 코드를 보면 각 환경마다. profile을 설정하여 환경이 달라질 때 마다 aplication-{profile}.properties 가 달라지는 것을 볼 수 있다.
그리고 빌드를 하게되면 해당 환경에 맞게 빌드가 이루어 질 것이다.

   mvn spring-boot:run –P prod

명령어를 입력하면 profiles에 따라서
이렇게 active stage가 변경된 것을 알 수 있다.

profile
시스템을 이해하고 싶은 개발자입니다.

0개의 댓글