application-{phase}.yml을 생성한 뒤 spring.profiles.active에 각 {phase}를 기재하였고,
phase별 server.port 정보를 변경 하였다.
./gradlew :{module}:bootRun -Dspring.profiles.active={phase} 등의 명령어를 통하여 원하는 profile을 설정값으로 원하는 module을 gradlew를 통해 bootRun할 수 있다.
해당 project에서는 rootProject경로의 build.gradle내부에 :api project에 대해서 bootRun{ String activeProfile = System.properties['spring.profiles.active'] systemProperty "spring.profiles.active", activeProfile } 을 등록해주어 ./gradlew :api:bootRun -Dspring.profiles.active={phase} 명령어가 가능하다.
gradle CLI를 통한 다른 작업을 위해서는, bootRun{}과 같이 다른 작업을 위한 systemProperties를 원하는 module에 대해 작성토록 해야할 것 같다.. (필시 ./gradlew :api:build -Dspring.profiles.active={phase}에 대한 properties등록 방법도 있을 것임..) gradle CLI관련 링크
Spring 2.4.X version 부터는 profile설정 후 gradle을 통한 build나 bootRun을 하기 위해서는 공통적으로 설정하는 application.yml에 spring.config.use-legacy-processing의 내용을 true로 바꿔줘야 한다. 그렇지 않으면, org.springframework.boot.context.config.InvalidConfigDataPropertyException 이 발생한다. 관련 링크
Spring profile 설정 내용
application-{phase}.yml을 생성한 뒤 spring.profiles.active에 각 {phase}를 기재하였고, phase별 server.port 정보를 변경 하였다.
./gradlew :{module}:bootRun -Dspring.profiles.active={phase}
등의 명령어를 통하여 원하는 profile을 설정값으로 원하는 module을 gradlew를 통해 bootRun할 수 있다.해당 project에서는 rootProject경로의 build.gradle내부에 :api project에 대해서
bootRun{ String activeProfile = System.properties['spring.profiles.active'] systemProperty "spring.profiles.active", activeProfile }
을 등록해주어./gradlew :api:bootRun -Dspring.profiles.active={phase}
명령어가 가능하다.bootRun{}
과 같이 다른 작업을 위한 systemProperties를 원하는 module에 대해 작성토록 해야할 것 같다.. (필시./gradlew :api:build -Dspring.profiles.active={phase}
에 대한 properties등록 방법도 있을 것임..) gradle CLI관련 링크Spring 2.4.X version 부터는 profile설정 후 gradle을 통한 build나 bootRun을 하기 위해서는 공통적으로 설정하는
application.yml
에spring.config.use-legacy-processing
의 내용을true
로 바꿔줘야 한다. 그렇지 않으면,org.springframework.boot.context.config.InvalidConfigDataPropertyException
이 발생한다. 관련 링크