如何解决grails 4.x:使用自定义环境创建 WAR 始终在开发中运行
我无法让我的自定义环境在 Tomcat 下运行。它始终加载开发配置文件。
我在 Grails 4.0.5 下使用以下内容创建了一个 WAR:
grails -Dgrails.env=qa war
生成的 grails.build.info 看起来是正确的:
info.app.version=2.0.7
info.app.name=myapp
grails.env=qa
info.app.grailsversion=4.0.5
但是,当我将其放入 Tomcat 8 并运行时,我得到了:
[ost-startStop-1] com.myapp.ApplicationLoader : The following profiles are active: development
不过,独立运行效果很好:
./gradlew -Dgrails.env=qa bootRun
解决方法
grails.util.Environment,定义了许多预先配置的环境。
Environment APPLICATION
Environment CUSTOM
Environment DEVELOPMENT
Environment PRODUCTION
Environment TEST
在 application.yml
中,我们获得了预配置的 development
、test
和 production
环境。所以如果我们想添加自定义环境,我们添加类似的。在您的情况下,它将是 qa
。
使用 Grails 命令行,我们可以在特定环境的上下文中执行任何命令。格式为:
grails [environment] [command name]
假设要为您运行的 test
环境创建一个 WAR:
grails test war
要针对其他环境,您可以将 grails.env 变量传递给任何命令:
grails -Dgrails.env=UAT run-app
我在 Grails 4.0.5 下使用以下内容创建了一个 WAR:
grails -Dgrails.env=qa 战争
是的,根据 grails 文档和配置,一切看起来都不错。
我已经为 Grails 4.0.5
创建了 POC 应用程序,并且还下载了外部 tomcat apache-tomcat-8.5.63
。
我的 application.yml
和 qa
ENV:
不过,独立运行效果很好:
./gradlew -Dgrails.env=qa bootRun
是的。这也很好用。
所以,现在我已经用 grails -Dgrails.env=qa war
创建了 war 文件
然后我启动了我的 tomcat 并将我的 poc-app-0.1.war
文件放入 tomcat。
当tomcat部署/提取我的war时,在浏览器中输入本地url。
您可以在上图中看到,环境为 qa
所以当我在创建战争时传递给 env 时,一切都在运行。
我在多个环境中进行了测试,包括预配置环境和自定义环境。但没有遇到任何问题,例如为 qa
制造战争并在 dev
上运行。
我也用 java -jar poc-app-0.1.war
进行了测试,它在我们给定的环境中运行。
和 tomcat 版本是 apache-tomcat-8.5.63
您的应用可能存在某些版本或配置问题。
请参考我的 poc 中的 this link。您能否尝试以相同的方式创建战争并部署到您的 tomcat 并告诉我。
如果您仍然遇到问题,请分享您的最小代码或 poc。
即使我在 grails 存储库中遇到了更多类似的问题,请refer 这样做。
我查阅了大量文档和参考资料,但仍然无法重现您的问题。
链接:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。