[英]Maven Profile for Spring Boot App on Google App Engine
我有一個 Spring Boot 應用程序,我想使用應用程序引擎 maven 插件將其部署在 Google 應用程序引擎上。
一切正常,除了我找不到 Google 應用引擎為 Spring Boot 應用加載正確的 application.properties 文件的方法。
我有 application-prod.properties、application-default.properties 和 application-test.properties。 例如,在本地我可以輕松選擇要開始使用的環境/配置文件
mvn appengine:run -Dspring.profiles.active=prod
但是當我嘗試為部署工作做同樣的事情時,比如
mvn appengine:deploy -Dspring.profiles.active=prod
那行不通。 它不會加載 application-prod.properties 而是回退到 application-default.properties。
我是否誤解了某些東西,或者應該這樣做嗎? 如果這不起作用,因為谷歌應用程序引擎只是在沒有傳遞任何參數的情況下開始戰爭,有沒有辦法為谷歌上的應用程序/服務定義環境變量,我可以在其中存儲諸如數據庫url和特定於環境的憑據之類的東西?
謝謝你們的幫助。
如果使用App Engine 柔性環境,請在您的app.yaml
添加以下內容
env_variables:
JAVA_USER_OPTS: '-Dspring.profiles.active=prod'
這將由運行時添加到 JVM 啟動命令中。 請參閱 openjdk 運行時的文檔。 默認情況下,您的應用程序使用 jetty-runtime,它繼承了 openjdk-runtime 的選項。
如果使用App Engine 標准環境,請在您的appengine-web.xml
添加以下內容:
<system-properties>
<property name="spring.profiles.active" value="prod" />
</system-properties>
嘗試使用jvmFlags
參數啟動具有所需屬性的應用程序, https: jvmFlags
<jvmFlags>
<jvmFlag>-Dspring.profiles.active=prod</jvmFlag>
</jvmFlags>
目前的答案對我不起作用。
相反(因為我使用 app.yaml 而不是 app-engine.xml)我在 app.yaml 中添加了以下兩行:
env_variables:
SPRING_PROFILES_ACTIVE: "myProfileName"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.