grails 4.x:使用自定义环境创建 WAR 始终在开发中运行

如何解决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 中,我们获得了预配置的 developmenttestproduction 环境。所以如果我们想添加自定义环境,我们添加类似的。在您的情况下,它将是 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

Tomcat and grails

我的 application.ymlqa ENV:

qa env

不过,独立运行效果很好:

./gradlew -Dgrails.env=qa bootRun

是的。这也很好用。 所以,现在我已经用 grails -Dgrails.env=qa war 创建了 war 文件 然后我启动了我的 tomcat 并将我的 poc-app-0.1.war 文件放入 tomcat。

enter image description here

当tomcat部署/提取我的war时,在浏览器中输入本地url。

enter image description here

您可以在上图中看到,环境为 qa

所以当我在创建战争时传递给 env 时,一切都在运行。

我在多个环境中进行了测试,包括预配置环境和自定义环境。但没有遇到任何问题,例如为 qa 制造战争并在 dev 上运行。

我也用 java -jar poc-app-0.1.war 进行了测试,它在我们给定的环境中运行。

申请详情: app details

和 tomcat 版本是 apache-tomcat-8.5.63

您的应用可能存在某些版本或配置问题。

请参考我的 poc 中的 this link。您能否尝试以相同的方式创建战争并部署到您的 tomcat 并告诉我。

如果您仍然遇到问题,请分享您的最小代码或 poc。

即使我在 grails 存储库中遇到了更多类似的问题,请refer 这样做。

我查阅了大量文档和参考资料,但仍然无法重现您的问题。

链接:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?