![](/img/trans.png)
[英]Intellij spring boot expand processResources in gradle build file to replace properties
[英]Spring boot + Gradle properties file
我在src/main/resources
application-dev.properties
和application-prod.properties
有两个属性文件。
当我使用java -jar -Dspring.profiles.active=dev
运行我的应用程序时,它将选择正确的属性文件,并且我的应用程序正在运行。
但是,当我使用gradle -Dspring.profiles.active=dev test
,未从指定的配置文件设置属性。
我还创建了一个包含spring.profiles.active=dev
的application.properties
文件。 当我使用java -jar test.jar
编译和运行时,它可以按预期工作,但是当我使用gradle test
这些属性将被忽略。
涉及两个JVM,一个运行Gradle,一个运行测试。 当您运行gradle -Dspring.profiles.active=dev test
您是在运行Gradle的JVM上设置属性,而不是在运行测试的JVM上设置属性。 Gradle不会自动将系统属性从其JVM复制到它产生的JVM。 这托皮在摇篮论坛C将解释如何设置的JVM性能运行测试,但总之你需要像这样在你的build.gradle:
tasks.withType(Test) {
systemProperty 'spring.profiles.active', 'dev test'
}
如果您将活动配置文件设置为系统属性,则可以使用以下命令:
tasks.withType(Test) {
systemProperty 'spring.profiles.active', System.getProperty('spring.profiles.active')
}
复制所有系统属性:
tasks.withType(Test) {
systemProperties = System.getProperties()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.