項目發布到linux之后,配置文件外置,放到了同級目錄config下,ssh連接后直接java -jar /home/xxx/xxx/xxx.jar方式啟動,啟動失敗,報錯Could not resolve placeholder 'spring.redis.host' in value "${spring.redis.host}",根據提示信息首先想到的是配置文件未配置spring.redis.host,檢查后發現配置存在。
百度了下很多都說是配有配置pom的web starter或者打包配置文件沒打進去,這個問題都不存在。
繼續上下翻動報錯信息,未找到有效信息。繼續往上翻INFO,找到一條信息:[ INFO] No active profile set, falling back to default profiles: default,提示沒有設置激活的配置文件,查看配置文件,設置了active:prod,測試把prod中的所有配置放到application中,啟動報錯還是照舊。開始考慮application本身沒有找到,之前啟動沒有問題,開始考慮項目啟動方式,差異就是之前是cd到jar目錄,然后java -jar xxx.jar,今天是直接在根目錄java -jar /home/xxx/xxx/xxx.jar,難道是項目啟動時不是以jar所在目錄為根目錄,而是以命令執行位置為根目錄?隨測試,cd到jar位置,項目正常啟動,果然如此。springboot用不久,沒有深入研究過,但是感覺不應該,結果事實就是如此,筆記一下,繼續探究。