簡體   English   中英

Google App Engine 上 Spring Boot 應用程序的 Maven 配置文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM