Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 运行bootRun并使用其他application.properties文件_Spring_Spring Boot_Gradle - Fatal编程技术网

Spring 运行bootRun并使用其他application.properties文件

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

我希望能够为spring boot运行bootRun,但是除了
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