我使用Gradle设置了Spring Boot项目。我有一个application.yml
文件,其中描述了两个名为' dev'和' prod'。
我能够将默认环境设置为' dev'调用Gradle bootRun任务时,使用build.gradle
中的以下代码:
def profile = 'dev'
bootRun {
args = ["--spring.profiles.active=" + profile]
}
但是如果我将相同的代码添加到测试任务中,它就不起作用:
def profile = 'dev'
test {
args = ["--spring.profiles.active=" + profile]
testLogging {
showStandardStreams = true
}
}
堆栈追踪:
FAILURE: Build failed with an exception.
* Where:
Build file 'C:\Users\Blade\javaworkspace\AutomationStatisticsPortal\build.gradle' line: 43
* What went wrong:
A problem occurred evaluating root project 'AutomationStatisticsPortal'.
> Could not set unknown property 'args' for task ':test' of type org.gradle.api.tasks.testing.Test.
没有该代码,测试任务就是从' prod'中获取配置。这是错的。
我希望bootRun使用' dev'因为那是我如何提出手动测试的应用程序。但我不确定如何确保它使用' dev'对于测试任务,然后确保Tomcat仅使用' prod'。
我可以假设tomcat会选择' prod'配置,如果我不覆盖它似乎是默认行为?
请告知。
答案 0 :(得分:0)
试试这个
test {
systemProperties['spring.profiles.active'] = 'dev'
}