我想更改gradle springboot应用程序的spring.config.additional-location使其在本地运行。我的C:/demo_class_path
中有一个属性文件,它位于jar之外。我试图在代码中访问这些属性。
运行jar wtth参数的命令java -jar demo-application.jar spring.config.additional-location=file:C:/demo_class_path
可以正常工作,我将能够获得所需的资源。但是我试图在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命令可以工作?
答案 0 :(得分:1)
systemProperties
用于将通常使用-D
传递的属性传递给运行时。
jvmArgs
用于将参数传递给JVM。
您要使用的是args
而不是上面的任何一个。
bootRun {
args = [
'--spring.config.additional-location=file:C:/demo_class_path/',
'--server.port=8090'
]
}
对于/
,在末尾包含spring.config.additional-location
很重要。当它不以/
结尾时,它将被解释为文件的基本名称,而不是文件位置。