jar文件外的application.properties如何
如spring-boot-reference中所述 :
在应用程序类路径上(例如在jar中),您可以拥有一个application.properties,它为name提供合理的默认属性值。 在新环境中运行时,可以在jar外部提供覆盖名称的application.properties
我将重复的application.properties与覆盖的名称放在与jar文件相同的路径上,但是在运行应用程序时:
java -jar target/myproject-0.0.1-SNAPSHOT.jar
名称值未被覆盖,它仍然指的是jar文件中的application.properties内部的一个。 我也尝试过:
java -Dspring.config.location=/target/application.properties -jar target/myproject-0.0.1-SNAPSHOT.jar
但它不起作用,请帮忙。
编辑
当我将当前目录更改为target
并运行它时,它可以正常工作。
java -jar myproject-0.0.1-SNAPSHOT.jar
为什么? 为什么不能在路径之外运行呢?
它不起作用,因为您尝试从另一个文件夹启动jar:spring boot查找相对于当前文件夹的文件/文件夹。
您可以:
1)相对于当前文件夹,以./
或./config/
复制application.properties
。
2)或者指定-Dspring.config.location
:
$ java -Dspring.config.location=target/application.properties -jar target/myproject-0.0.1-SNAPSHOT.jar
你将config
拼写为conig
,如果拼写正确,应该可以正常工作。