moo*_*nli 5 java google-app-engine spring maven spring-boot
我有一个 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
Run Code Online (Sandbox Code Playgroud)
但是当我尝试为部署工作做同样的事情时,比如
mvn appengine:deploy -Dspring.profiles.active=prod
Run Code Online (Sandbox Code Playgroud)
那行不通。它不会加载 application-prod.properties 而是回退到 application-default.properties。
我是否误解了某些东西,或者应该这样做吗?如果这不起作用,因为谷歌应用引擎只是在没有传递任何参数的情况下开始战争,有没有办法为谷歌上的应用程序/服务定义环境变量,我可以在其中存储诸如数据库url和特定于环境的凭据之类的东西?
谢谢你们的帮助。
如果使用App Engine 柔性环境,请在您的app.yaml添加以下内容
env_variables:
JAVA_USER_OPTS: '-Dspring.profiles.active=prod'
Run Code Online (Sandbox Code Playgroud)
这将由运行时添加到 JVM 启动命令中。请参阅openjdk 运行时的文档。默认情况下,您的应用程序使用 jetty-runtime,它继承了 openjdk-runtime 的选项。
如果使用App Engine 标准环境,请在您的appengine-web.xml添加以下内容:
<system-properties>
<property name="spring.profiles.active" value="prod" />
</system-properties>
Run Code Online (Sandbox Code Playgroud)
尝试使用jvmFlags参数来启动具有所需属性的应用程序,https://cloud.google.com/appengine/docs/standard/java/tools/maven#development_server_goals
<jvmFlags>
<jvmFlag>-Dspring.profiles.active=prod</jvmFlag>
</jvmFlags>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2194 次 |
| 最近记录: |