我在类路径的根中有application-dev.properties和application-local.properties。属性文件中是我的数据源属性。但即使我们启动应用程序时java -Dspring.profiles.active=local -jar myJarApp.jar谢谢
application-dev.properties
application-local.properties
java -Dspring.profiles.active=local -jar myJarApp.jar
u5rb5r591#
尝试传递参数,如下所示:
$ java -jar xyz.jar --spring.profiles.active="dev"
而不是使用-D标志。或者,您可以在控制台/提示符中设置以下环境变量,然后在不传递任何参数的情况下运行java -jar xyz.jar
java -jar xyz.jar
export SPRING_PROFILES_ACTIVE=dev
这应该行得通。参考:http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
qmb5sa222#
注意配置文件名称中的连字符。在我的例子中,Spring Boot 2.3.2将在运行时选择配置文件local-dockerjava -jar -Dspring.profiles.active=docker target/main-0.0.1-SNAPSHOT.jar但由于某些原因,它不会选择相关联的属性文件application-local-docker.properties。我恢复了使用不带连字符的配置文件名,这很有效。
local-docker
java -jar -Dspring.profiles.active=docker target/main-0.0.1-SNAPSHOT.jar
application-local-docker.properties
p4rjhz4m3#
如果您想直接从maven运行它
./mvnw spring-boot:run \ -Dspring-boot.run.jvmArguments="-Dspring.profiles.active=PROFILE_NAME"
例子:
./mvnw spring-boot:run \ -Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
3条答案
按热度按时间u5rb5r591#
尝试传递参数,如下所示:
而不是使用-D标志。
或者,您可以在控制台/提示符中设置以下环境变量,然后在不传递任何参数的情况下运行
java -jar xyz.jar
这应该行得通。
参考:
http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
qmb5sa222#
注意配置文件名称中的连字符。
在我的例子中,Spring Boot 2.3.2将在运行时选择配置文件
local-docker
java -jar -Dspring.profiles.active=docker target/main-0.0.1-SNAPSHOT.jar
但由于某些原因,它不会选择相关联的属性文件
application-local-docker.properties
。我恢复了使用不带连字符的配置文件名,这很有效。p4rjhz4m3#
如果您想直接从maven运行它
例子: