小编典典

jar文件外的application.properties如何

spring-boot

spring-boot-reference中所述

在您的应用程序类路径上(例如,在jar内),您可以具有application.properties,它为名称提供了合理的默认属性值。在新环境中运行时,可以在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

为什么?为什么不能走这条路呢?


阅读 734

收藏
2020-05-30

共1个答案

小编典典

它不起作用,因为您正试图从另一个文件夹启动jar:spring boot查找相对于当前文件夹的文件/文件夹。

您可以:

1)相对于您当前的文件夹application.properties./或中复制./config/

2)或指定-Dspring.config.location

$ java -Dspring.config.location=target/application.properties -jar target/myproject-0.0.1-SNAPSHOT.jar
2020-05-30