Spring 运行bootRun并使用其他application.properties文件
我希望能够为spring boot运行bootRun,但是除了Spring 运行bootRun并使用其他application.properties文件,spring,spring-boot,gradle,Spring,Spring Boot,Gradle,我希望能够为spring boot运行bootRun,但是除了src/main/resources/中的文件外,还可以使用另一个application.properties文件。可能吗?我不希望覆盖src/main/resources/中的文件,因为它会弄脏文件 这可能吗?您可以使用基于配置文件的配置选择。 只需设置系统环境属性: spring.profiles.active=dev 现在在应用程序资源中提供application-dev.properties(src/main/resource
src/main/resources/
中的文件外,还可以使用另一个application.properties文件。可能吗?我不希望覆盖src/main/resources/
中的文件,因为它会弄脏文件
这可能吗?您可以使用基于配置文件的配置选择。 只需设置系统环境属性:
spring.profiles.active=dev
现在在应用程序资源中提供application-dev.properties(src/main/resources/
)
通过这种方式,您可以为不同的环境使用不同的属性
如果要在其他位置提供文件,请使用此环境属性
spring.config.location=
如果希望使用不同的名称,则属性文件名中的应用程序将使用此环境属性:
spring.config.name=
有关更多信息,请查看此链接:
以下是我的
bootRun
任务执行此操作时的样子
bootRun{
systemProperty“spring.config.location”,“文件:$projectDir/spring-config/”
main=springBootAppClass
}
它指定使用项目根文件夹中的spring配置目录
如果与@PropertySource
一起使用,则如下所示
@PropertySource(${spring.config.location}/persistence.properties”)
试试这个命令
./gradlew bootRun --args='--spring.profiles.active=dev'
我也在寻找解决方案,在官方文件中找到了
运行gradle时,是否可以在comamnd行上指定配置文件?我希望避免要求开发人员设置系统属性。您可以在
spring.config.location
中提供文件位置作为环境属性,也可以作为java vm参数提供。我没有使用gradle,但我确信有一种方法可以提供java vm参数。例如,通过命令行运行spring boot jar时,您可以提供如下java vm参数:java-Dspring.config.location=-jar