Grails 部署

 

部署

Grails可以使用很多种方式来部署,每一种都有它的缺点和优点.

 

"grails run-app"

现在,你已经非常属性这个方式 , 因为它是在部署阶段运行应用程序非常普通的方法. 内置的Jetty服务器被启动并加载来自开发时的应用程序源代码, 因此,允许获取应用程序文件的改变.

这种方式在产品部署时不被推荐,因为性能非常差。 检查和加载改变在服务器端是非常大的开销. 话虽如此, grails prod run-app 移除每次请求开支并允许你控制进行定期检查的频率.

设置系统属性"disable.auto.recompile" 为true彻底禁止常规检查 ,属性"recompile.frequency"控制着频率 .后者应该设置为你想要每次检查之间的秒数 . 默认为 3.

 

"grails run-war"

这非常类似于上面的选项,但 Jetty 运行依靠的是打包的WAR文件而不是开发时源代码. 热重载被禁止, 因此你无需在别处部署WAR文件而获得良好性能.

 

WAR 文件

当涉及到它时, 目前的java基本设备都要求web应用程序被当做WAR文件部署,因此,这是目前为止最常见的方式Grails应用程序用于生产部署 . 创建WAR文件只需要简单的执行war 命令:

 

grails war

这里也有许多方式用于定制WAR文件的创建 . 例如, 你可以指定命令路径 (任何现对和绝对) ,这会指定在哪里放置文件和给定什么样的名字:

 

grails war /opt/java/tomcat-5.5.24/foobar.war

作为选择,你可以在grails-app/conf/BuildConfig.groovy添加一行来改变默认的位置和文件名 :

 

grails.war.destFile = "foobar-prod.war"

当然,任何命令行参数都优先于这个设置.

它也可以控制在WAR文件包含什么样的类库 , 例如,如果你需要在共享文件夹中避免类库冲突.默认行为是包含所有Grails所需要的全部类库 ,添加的任何类库都被包含在 "lib"目录, 添加的任何类库都被包含在应用程序的"lib"目录.作为默认行为的选择,通过使用Ant包含模式或闭包包含AntBuilder语法的任一种设置Config.groovy的grails.war.dependencies和 grails.war.java5.dependencies属性来明确指定WAR文件所包含的完整的类库列表,闭包的调用来自Ant "copy"阶段,因此只有像 "fileset"的元素可以被包含,尽管每个项目都包含在模式列表中.任何闭包或模式被分配给后面的属性被包含在增加的grails.war.dependencies只在你运行在JDK1.5或以上 .

注意这些问题: 假如任何Grails依赖的类库丢失,应用程序肯定会失败,这里有个示例包含了标准Grails依赖所需的小子集:

 

def deps = [
    "hibernate3.jar",
    "groovy-all-*.jar",
    "standard-${servletVersion}.jar",
    "jstl-${servletVersion}.jar",
    "oscache-*.jar",
    "commons-logging-*.jar",
    "sitemesh-*.jar",
    "spring-*.jar",
    "log4j-*.jar",
    "ognl-*.jar",
    "commons-*.jar",
    "xstream-1.2.1.jar",
    "xpp3_min-1.1.3.4.O.jar" ]

grails.war.dependencies = { fileset(dir: "libs") { deps.each { pattern -> include(name: pattern) } } }

这个示例只是为了说明属性的语法,假如你想在自己的应用程序中尝试使用它们,应用程序可能不会工作. 你可以在未打包的根目录的 "dependencies.txt"文件中找到Grails所需的依赖列表.你也可以在产生WAR文件的"War.groovy"脚本中找到默认的依赖 - 查看 "DEFAULT_DEPS" 和 "DEFAULT_J5_DEPS" 变量.

2个遗留的配置选项用于grails.war.copyToWebApp和grails.war.resources. 第一个允许你定制来自"web-app"目录的WAR文件包含什么. . 第2个允许你在WAR文件完全创建之前执行任何额外的数据处理.

 

// This closure is passed the command line arguments used to start the
// war process.
grails.war.copyToWebApp = { args ->
    fileset(dir:"web-app") {
        include(name: "js/**")
        include(name: "css/**")
        include(name: "WEB-INF/**")
    }
}

// This closure is passed the location of the staging directory that // is zipped up to make the WAR file, and the command line arguments. // Here we override the standard web.xml with our own. grails.war.resources = { stagingDir, args -> copy(file: "grails-app/conf/custom-web.xml", tofile: "${stagingDir}/WEB-INF/web.xml") }

 

应用程序服务器

理想情况下,你可以把通过Grails创建的WAR文件简单的放置于任何应用程序服务器并能马上工作. 不过,事情并没这么简单. Grails 站点 包含最新的Grails测试过的服务器列表, 连同任何其他用让Grails WAR文件工作的额外步骤. 

29、Grails 应用开发与部署全解析 本文全面解析了Grails应用的开发与部署流程,涵盖日志管理、应用打包与部署、HTTPS配置、Gant自动化任务、应用升级、环境搭建、命令行脚本以及富Groovy客户端构建等内容。通过详细的技术配置和脚本示例,帮助开发者高效完成从开发、测试到部署的各个环节,并提升开发效率与系统稳定性。 阅读详情

相关推荐

关于Grails开发的软件部署建议

关于Grails开发的软件部署建议

Grails 命令行

Grails的命令行系统是构建于 Gant 之上,Gant就是使用Groovy对 Apache Ant 进行了简单的包装。 然而,Grails通过约定规则以及grails命令的使用带来了一些改进。当你键入如下内容时: grails [命令名称] 为了Gant脚本的执行,Grails会在下列目录中做一次搜索: USER_HOME/.grails/sc...

justJavaC的专栏 595

别再傻傻分不清了!用Design Compiler和PrimeTime实操对比PBA与GBA模式

本文深度解析静态时序分析(STA)中Design Compiler与PrimeTime工具的PBA与GBA模式差异,通过实际案例演示两种模式在转换时间计算、时钟路径分析等方面的对比,并提供工程实践中模式选择的策略与调试技巧,帮助工程师在芯片设计流程中平衡精度与效率。

weixin_42552315的博客 414

android grais app,启动运行后,Grails 3 run-app不会返回

我一直在使用Grails 3.0.1交互式控制台,当我输入“run-app”命令时,我希望它启动服务器并返回提示符.相反,它做了类似的事情:grails> run-app> Configuring > 1/1 projects > Resolving dependencies ':agent' > Resolving dependencies ':versio:com...

weixin_42122306的博客 170

概述DeepLab系列(deeplab v1, deeplab v2, deeplab v3, deeplab v3+)

前言:图像分割是指像素级别的图像识别,即标注出图像中每个像素所属的对象类别。 语义分割更注重类别之间的区分,而实例分割更注重个体之间的区别。 DeepLab是由Google团队提出的一系列图像分割算法。 DeepLab v1 (2014年) Paper (ICLR 2015) Code 创新点: 空洞卷积(Atrous Conv); <解决编码过程中信号不断被下采样,细节丢失的问题> 全连接条件随机场(Fully-connected Conditional Random Field)。

ZSH12345678900的博客 5528

Kolla 容器化 高可用OpenStack 部署与 Ceph 集群集成

本文介绍了 Kolla 项目在容器化 OpenStack 部署和管理方面的应用,以及与 Ceph 集群的集成。Kolla 项目通过容器技术提供了一种简化和自动化的 OpenStack 部署方法,同时实现了易于升级和回滚的特点。本文还探讨了 Kolla 在实现零宕机升级方面的进展,并分析了其对 OpenStack 用户和社区的重要意义。

we22635的博客 2702

Grails 学习笔记

配置篇 在config.groovy文件中有名为layer1.prop1的参数。请问,在Controller中如何访问它?在Service中呢? 访问方式一样,可采用以下任意一种方法: view source print ? 1 grailsApplication.config.layer1.prop1 2 //或...

跳动的心 347

Cadence 17.2配置CIS数据库报错?手把手解决ODBC驱动位数不匹配问题

本文详细解析了Cadence 17.2配置CIS数据库时常见的ODBC驱动位数不匹配问题,提供了从系统环境检查到分步解决方案的完整指南。重点解决32位应用程序与64位ODBC驱动之间的架构冲突,包含驱动安装、DSN配置及高级排查技巧,帮助电子工程师快速恢复设计环境。

play7的博客 970

Grails run-app 一直提示DownloadingXXXXXX 下载gradle

解决方法: 找到目录:C:\Users\ .gradle\wrapper\dists 当前版本zip包 放入一串英文文件夹里就ok了 和百度查找的 android Studio 报错类似

weixin_42990132的博客 329

90nm CMOS工艺下6μW超低功耗LDO设计实战:从原理图到版图全解析

本文详细解析了在90nm CMOS工艺下设计一款静态功耗仅为6μW的超低功耗LDO(低压差线性稳压器)的全过程。文章深入探讨了如何通过改进型翻转电压跟随器(FVF)架构实现无输出电容设计,在满足极低功耗和芯片面积高效(chip-area-efficient)要求的同时,确保环路稳定性与快速瞬态响应,为物联网、可穿戴设备等应用提供关键电源管理解决方案。

weixin_29196613的博客 274

大开眼界的十大开源人工智能项目

这是一个强大的开源工具,能让你在不同框架之间自由切换,无需重写代码。它是一个开源工具,能用简单的SQL语言同时处理数据和AI模型,让一切变得有序而高效。Rasa是我开发智能聊天机器人时的首选,它让你轻松掌控机器人对话的每个细节。我经常用它快速验证模型在不同框架下的表现,省去了大量烦躁的调试过程。最近发现的Vapi是一个以API方式提供的语音AI工具,开发者友好程度超乎想象。KNIME是一个以拖拽方式构建数据分析流程的开源工具,仿佛是数据界的乐高积木。它像个忠诚的守门员,确保你的模型始终健康运行。

wjianwei666的专栏 1103

gradle maven设置jdk 8 设置的编译参数名

在JDK8以前,编译的代码的参数名都是: arg0, arg1,arg2;而在JDK 8 之后增加了参数名称编译的支持,不过默认是关闭这个特性的.JDK 8 在其中一个新特性(很久的事情了…开启的方法为 在javac 添加参数 -parameters,

qq_34874784的博客 1158

SimpleITK使用——1. 进行Resample/Resize操作

文章目录1. 变换到一个新的spacing1.1 使用Resample()的方法1.1.1 完整代码1.1.2 转换前后图像1.2 使用ResampleImageFilter()的方法2. 已知原图和变换后目标图像的大小2.1 代码2.2 转换后图像3. 相关内容说明3.0 体素和spacing3.1 Resample() 函数说明3.2 itk::simple::ResampleImageFilter函数说明 1. 变换到一个新的spacing 1.1 使用Resample()的方法 1.1.1

啷个哩个啷 8079

grails安装部署_Grails 部署

Grails可以使用很多种方式来部署,每一种都有它的缺点和优点."grails run-app"现在,你已经非常属性这个方式 , 因为它是在部署阶段运行应用程序非常普通的方法. 内置的Jetty服务器被启动并加载来自开发时的应用程序源代码, 因此,允许获取应用程序文件的改变.这种方式在产品部署时不被推荐,因为性能非常差。 检查和加载改变在服务器端是非常大的开销. 话虽如此, grails prod...

weixin_36285258的博客 286

【银河麒麟桌面系统】安装英伟达(NVIDIA)显卡驱动

本文详细介绍了在麒麟桌面操作系统V10 SP1(版本号2503)上安装NVIDIA RTX 5060显卡驱动的完整流程。主要内容包括:查看系统版本信息,从NVIDIA官网下载Linux 64位驱动,授予执行权限后运行安装程序,处理安装过程中的X server警告、32位库安装、DKMS模块选择等问题,以及安装完成后如何验证驱动状态。同时提供了卸载驱动的步骤和常见问题解决方案,如处理X server警告、libglvnd EGL依赖问题等。该指南适用于需要在国产麒麟系统上安装NVIDIA显卡驱动的用户,包含完

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 6309

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Grails环境部署开发

 1       内容简介该部分主要介绍了Grails的开发环境配置,开发第一个简单的web服务,将应用部署到发布平台. 2       开发平台搭建2.1    组件Eclipse:业界广泛采用的java开发环境,开源的,最优秀的开发软件之一Groovy的Eclipse插件: Groovy 的 Eclipse 插件能够编辑,编译以及运行 groovy 脚本和类,这个插

百事乐 7602

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

grails安装部署_Grails部署问题(WAR和Tomcat)

我正在努力在远程服务器上的Tomcat 6下部署WAR。现在,如果我将其部署在本地计算机上,则一切正常。远程部署会触发一组非常不友好的异常。log4j:ERROR setFile(null,true) call failed.java.io.FileNotFoundException: stacktrace.log (Permission denied)at java.io.FileOutputS...

weixin_30670103的博客 274

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Grails部署 = war + Tomcat + MySQL

今天搞了一下Grails项目的部署,准确的说,部署操作和Grails无关,因为可以很方便的打成war包,就可以放在标准的Java容器里了。 步骤: 1. 用grails命令行或IDEA里直接点按钮,就可以打成war包。这里有个方便之处是,所有以plugin存在的第三方包,都会自动打到war包里,相当方便。当然这导致war包也高达30多M,应该有地方可以配置只打程序的部分。 2. 以l...

iteye_5925的博客 277

grails安装部署_Intellij 2015+grails环境搭建

1、首先到intellij官网下载.......................................................................................................22、下载grails3:https://grails.org/...................................................

weixin_39860732的博客 122

Tomcat部署Grails war包时所遇到的郁闷问题

<br />用Grails技术目前已经开发了三个小规模的网站。第一个网站是接手公司同事;第二个项目是帮老板朋友更改的网站,最后因故没经采用;最后一个项目临近发布,却由于没有经历过自己部署项目到应用服务器上,所以直接导致了今天一下午的郁闷。。。(也可以说自己太菜吧)<br /> <br />Grails打war包,用的命令是Grails prod war ROOT.war,这里,"prod"参数用来指定打包的时候使用DateSource.groovy里不同的数据源。数据源环境的配置在DateSource.gr

长东应用 3633

Grails3 应用程序部署

斗战圣佛91的博客 294

GRAILS OC4J 部署问题以及解决方案

版本: grails 1.0.4 acegi-plugin 0.4.1 quartz-plugin 0.3.3 oc4j_extended_101330 oracle 9i ojdbc4.jar 数据源使用OC4J的managed-data-source 问题: 1、如果war包WEB-INF/lib下的jar包,保留在war包内,可以部署,但是不能重新热部署,必须重启AS,...

johsonwon的专栏 151

grails 打war包和部署war包的步骤

[b]1[/b].grails打war包的命令: grails war [b]2[/b].部署war包 1.下载putty,设置软件的编码格式UTF-8。 2.下载SSH client这个用来上传文件。 3.ssh快速登录ip为(例如):58.22.222.2,用户名为:*****,密码:***** 4.左边文件的本地war包ROOT.war拖拽到右边窗口的home/用户名 的文件夹...

shouhuhuise的专栏 912

简化grails打包部署

  最近使用grails开发了一个小模块,总共就五个表不到10功能,如果使用熟悉的spring+hibernate估计一两天就能完成,使用grails缺花了我一个星期。毕竟学习新东西还是要花一点时间,一边看文档一边写代码,又走了一点弯路。再加上不知道如何使用grails支持apache的AJP协议,自己写了一个支持AJP协议的Jetty服务。不过通过这段时间的使用感觉grails开发还是比较方便,...

iamhuzl的专栏 818

grails部署开发

1  启动IntelliJ IDEA时候,如果出现: SEVERE: Problems copying method. Incompatible JVM? java.lang.reflect.InvocationTargetException         at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source),则

zyzn1425077119的博客 1988
上一篇: 饭后做这6件事等于慢性自杀。。。
下一篇: 精通 Grails: 构建您的第一个 Grails 应用程序
SleepInDelphi
博客等级 码龄19年 32粉丝 388原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值