2014-04-26 3 views
1

src/main/resourcesapplication-dev.propertiesapplication-prod.properties에 두 개의 등록 정보 파일이 있습니다.스프링 부트 + Gradle 등록 정보 파일

java -jar -Dspring.profiles.active=dev으로 응용 프로그램을 실행할 때 올바른 속성 파일이 선택되고 응용 프로그램이 실행 중입니다.

그러나 gradle -Dspring.profiles.active=dev test을 사용하면 속성이 지정된 프로필에서 설정되지 않습니다.

또한 spring.profiles.active=dev을 포함하는 application.properties 파일을 만들었습니다. java -jar test.jar으로 컴파일하고 실행하면 gradle test을 사용할 때 속성이 무시됩니다.

답변

0

두 개의 JVM이 있습니다. 하나는 실행중인 Gradle이고 다른 하나는 테스트를 실행하는 JVM입니다. gradle -Dspring.profiles.active=dev test을 실행할 때 테스트를 실행하는 JVM이 아니라 JVM 실행 중 Gradle에 등록 정보를 설정합니다. Gradle은 JVM에서 생성 된 JVM으로 시스템 특성을 자동으로 복사하지 않습니다. Gradle을 포럼에서 This topi C는 테스트를 실행하는 JVM에 대한 속성을 설정하지만, 한마디로 당신은 당신의 build.gradle이 뭔가를해야합니다 방법을 설명합니다 : 당신이 활성 프로파일 등을 설정 한 경우

tasks.withType(Test) { 
    systemProperty 'spring.profiles.active', 'dev test' 
} 

시스템 속성이를 사용할 수 있습니다

tasks.withType(Test) { 
    systemProperties = System.getProperties() 
} 
:

tasks.withType(Test) { 
    systemProperty 'spring.profiles.active', System.getProperty('spring.profiles.active') 
} 

모든 시스템 속성을 복사하려면

관련 문제