前提:
打出来的jar中已经包含了各个application-xxx.yml文件,jar所在位置也引入了外部的application-test.yml。
目的:运行时,希望使用的时外部 application-test.yml 文件。
使用了以下命令:
java -Xms1024m -Xmx2048m -jar /home/test/my-test-app-0.0.1.jar --spring.config.location=./application-test.yml --logging.config=./logback.xml -server my-test-app &
可以启动,但是,使用的时jar包里面的application-test.yml配置,而不是外部的application-test.yml文件。
解决问题:
使用-D命令设置系统属性
java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-test.yml /home/test/my-test-app-0.0.1.jar --logging.config=./logback.xml -server my-test-app &
或者:
java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-test.yml -Dlogging.config=./logback.xml /home/test/my-test-app-0.0.1.jar -server my-test-app &
问题:
在测试过程种,如果引入的application文件包含spring.profile 属性,会导致引用失败,所以速妖删掉这个文件,如果需要使用spring.profile 则需要在启动的脚本中加入这个配置项:
java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-test.yml -Dlogging.config=./logback.xml /home/test/my-test-app-0.0.1.jar --spring.profile=test -server my-test-app &