加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Grails 部署

发布时间:2020-12-14 17:05:32 所属栏目:大数据 来源:网络整理
导读:? 部署 Grails可以使用很多种方式来部署,每一种都有它的缺点和优点. ? "grails run-app" 现在,你已经非常属性这个方式,因为它是在部署阶段运行应用程序非常普通的方法. 内置的Jetty服务器被启动并加载来自开发时的应用程序源代码,因此,允许获取应用程序文件

?

部署

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.dependenciesgrails.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.copyToWebAppgrails.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文件工作的额外步骤.?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读