在 bootRun 任务中传递 spring.config.location
Passing spring.config.location in bootRun task
我想将 gradle springboot 应用程序的 spring.config.additional 位置更改为 运行 本地。我的 C:/demo_class_path
中有一个属性文件,它在 jar 之外。我试图在代码中访问这些属性。
命令 java -jar demo-application.jar spring.config.additional-location=file:C:/demo_class_path
到 运行 jar wtth 参数有效,我将能够获得我需要的资源。但是我试图在 bootRun 任务中添加参数,但没有成功。
我试过下面的代码:
bootRun {
systemProperties = [
'spring.config.additional-location' : "file:C:/demo_class_path",
'server.port' : 8090
]
}
或
bootRun {
jvmArgs = [
"-Dspring.config.additional-location=file:C:/demo_class_path/",
"-Dserver.port=8090"
]
}
使用上面的代码,我可以将端口更改为 8090,但我的文件无法再从该路径中提取。
我还尝试添加 spring.config.additional-location=file:C:/demo_class
_path 到 application.properties 并且那也不起作用。我想知道该位置的语法是否错误。在那种情况下,为什么 java 命令会起作用?
systemProperties
用于将通常使用 -D
传递的属性传递给运行时。
jvmArgs
用于向 JVM 传递参数。
您要使用的是 args
而不是以上任何一个。
bootRun {
args = [
'--spring.config.additional-location=file:C:/demo_class_path/',
'--server.port=8090'
]
}
在 spring.config.additional-location
末尾包含 /
很重要。当它不以 /
结尾时,它被解释为文件的基本名称而不是文件位置。
我想将 gradle springboot 应用程序的 spring.config.additional 位置更改为 运行 本地。我的 C:/demo_class_path
中有一个属性文件,它在 jar 之外。我试图在代码中访问这些属性。
命令 java -jar demo-application.jar spring.config.additional-location=file:C:/demo_class_path
到 运行 jar wtth 参数有效,我将能够获得我需要的资源。但是我试图在 bootRun 任务中添加参数,但没有成功。
我试过下面的代码:
bootRun {
systemProperties = [
'spring.config.additional-location' : "file:C:/demo_class_path",
'server.port' : 8090
]
}
或
bootRun {
jvmArgs = [
"-Dspring.config.additional-location=file:C:/demo_class_path/",
"-Dserver.port=8090"
]
}
使用上面的代码,我可以将端口更改为 8090,但我的文件无法再从该路径中提取。 我还尝试添加 spring.config.additional-location=file:C:/demo_class _path 到 application.properties 并且那也不起作用。我想知道该位置的语法是否错误。在那种情况下,为什么 java 命令会起作用?
systemProperties
用于将通常使用 -D
传递的属性传递给运行时。
jvmArgs
用于向 JVM 传递参数。
您要使用的是 args
而不是以上任何一个。
bootRun {
args = [
'--spring.config.additional-location=file:C:/demo_class_path/',
'--server.port=8090'
]
}
在 spring.config.additional-location
末尾包含 /
很重要。当它不以 /
结尾时,它被解释为文件的基本名称而不是文件位置。