2017-12-22 22 views
1

-Drun.profiles-Dspring.profiles.active 사이의 스프링의 차이점을 이해하려고합니다.Spring에서 -Drun.profiles와 -Dspring.profiles.active의 차이점은 무엇입니까?

또 다른 answer in SO은 차이점에 대해 너무 많이 설명하지 않습니다.

mvn spring-boot:run -Drun.profiles=prod 

또는

mvn spring-boot:run -Dspring.profiles.active=prod 

따라서 차이가 무엇 : 내 테스트에서

는 둘 다 프로파일을 선택할 수 있습니다?

+0

-Dspring.profile.active mean -Dspring.profiles.active? – neuo

+0

예, 저의 실수입니다. – Dherik

답변

3

spring.profiles.active은 Spring Boot 응용 프로그램이 기본적으로 지원하는 속성 중 하나입니다. Spring Boot 애플리케이션의 레벨에서 프로파일을 실행해야 하는지를 지정하는 데 사용됩니다.

스프링 부트는 다양한 속성을 지원하며 전체 목록은 here입니다.

이제는 Spring Boot Maven 플러그인이 지원하는 속성이기 때문에 이러한 속성 중 run.profiles을 찾을 수 없습니다. (예,이 속성을 사용하여 프로필 목록에도 '변환'하므로 이러한 속성 비슷하게 보일지도 모르지만, 포인트는 -Drun.profiles은 Maven 플러그인으로 봄 부팅 애플리케이션을 시작한 경우에만 작동합니다.

그러나 제작시에는 Maven이 전혀 없을 가능성이 있으며 응용 프로그램은 그대로 (큰 항아리로) 실행되거나 Docker 이미지 또는 다른 것으로 포장됩니다. 따라서 Maven-Plugin을 사용하지 않는 경우 spring.profiles.active

마지막으로 Maven --spring.profiles.active에서도 사용할 수 있지만, 기본적으로 작동하지는 않습니다. 이 매개 변수는 다음과 같이 전달해야합니다.

mvn spring-boot:run -Drun.jvmArguments="-Dspring.profiles.active=production" 

this item in Github을 참조하십시오.

희망 사항은이 두 가지의 차이점을 명확히 나타내기를 바랍니다.

+0

더하기,''-Drun.profiles = prod''를 spring boot maven plugin과 함께 사용하면''spring.profiles.active'' 인수를 지정하는 편리한 단축키입니다. [여기를보십시오] (https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/maven-plugin/run-mojo.html#profiles) – HaoChih