복붙노트

[SPRING] Spring 부트의 application.properties에서 Maven 속성 사용하기

SPRING

Spring 부트의 application.properties에서 Maven 속성 사용하기

pom.xml에서 application.properties로 속성을로드하려고합니다. 나는 두 개의 프로파일을 만들고 싶다 : dev와 다른 데이터베이스 URL을 사용하도록 자극해라. 나는 Jenkins를 CI로 사용하고 있는데, 모든 애플리케이션 (주로 Boot 프로젝트가없는 Spring MVC)은 Maven 프로파일을 사용하여 Tomcat에 배치한다. Maven 속성을 사용하여이 작업을 수행 할 수 있습니까? 나는 그런 것을 시도했다. spring.datasource.url = $ {jdbc.url}

해결법

  1. ==============================

    1.이를 수행하기 전에 전개 가능한 패키지에서 특성 파일을 외부화하는 것을 고려하십시오. 이렇게하면 모든 환경에 동일한 컴파일을 배포 할 수 있습니다. Jenkins는 실제로 불필요한 작업을 저장합니다. 가장 좋은 방법은 응용 프로그램을 한 번만 빌드하는 것이지만, 확신이없는 경우 여기에 수행하는 방법이 있습니다.

    이를 수행하기 전에 전개 가능한 패키지에서 특성 파일을 외부화하는 것을 고려하십시오. 이렇게하면 모든 환경에 동일한 컴파일을 배포 할 수 있습니다. Jenkins는 실제로 불필요한 작업을 저장합니다. 가장 좋은 방법은 응용 프로그램을 한 번만 빌드하는 것이지만, 확신이없는 경우 여기에 수행하는 방법이 있습니다.

    다른 Maven 프로파일에 대한 Spring 등록 정보 파일을 분리하는 방법에 대한 게시물을 확인할 수도 있습니다. 그렇게하면 pom.xml에서 값을 외부화합니다.

  2. ==============================

    2.물론 있습니다. application.properties 파일을 통해 Maven Filtering을 사용하면 Maven은 프로파일 특정 값을 파일에 씁니다.

    물론 있습니다. application.properties 파일을 통해 Maven Filtering을 사용하면 Maven은 프로파일 특정 값을 파일에 씁니다.

    그러나, Maven 프로파일은 애플리케이션 패키지 / 빌드시에 작동하지만, Spring 시동 프로파일은 런타임시에 동작한다는 것을 알아야한다. 즉, Maven 프로파일을 사용하면 프로필에 특정한 변경 가능하지 않은 빌드를 얻을 수 있으며, Spring Boot에서 빌드를 사용하면 실행하기 전이나 실행 중일 때마다 애플리케이션 구성을 변경할 수 있습니다.

    참조 :

  3. from https://stackoverflow.com/questions/36703499/using-maven-properties-in-application-properties-in-spring-boot by cc-by-sa and MIT license