5月14日Grails1.1.1发布,其中一个最振奋的特性就是可以支持Google App Engine开发了(通过插件的方式)。第一时间我试用了Grails这个最新版本,但因为在使用过程中还有些问题,今天才解决,所以现在把如何用Grails开发appengine项目为大家演示一下。
第一步:你必须有一个google账户,这样才能注册appengine账户
如果已经有google账户,到这里http://appengine.google.com申请appengine。
tip:在初次创建项目时需要手机验证,输入中国的手机号码前加 +86
第二步:下载Grails 1.1.1和下载Appengine的JavaSDK
http://grails.org/ Grails首页就有
Appengine的JavaSDK这个非常重要,也非常关键,而且关键的是你在AppEngine的官方下载页面是根本下载不到的。
必须到这里下载,http://code.google.com/p/googleappengine/ 那个Java版的SDK appengine-java-sdk-1.2.1.zip
第三步:新建一个Grails项目
grails create-app first-app
第四步: Grails项目名字和appengine名字的映射关系
你的Grails项目名字最好和你在appengine上的项目名字一致,否则你需要在项目中的Config.groovy文件里配置你在appengine部署的项目名字。
例如:google.appengine.application="petclinic-grails"
第五步: 卸载Hibernate插件
grails uninstall-plugin hibernate
因为Google App Engine不支持 GORM ,而且Appengine提供的数据库服务器需要jdo来访问。 所以要卸载hibernate,而使用jdo。
tip:这里卸载了HIbernate插件,但你在使用 generate-all命令生成gsp页面时可能会报错,因为Grails的gsp模板文件中使用了hibernate的一些class。
所以你需要吧hibernate插件中lib目录下的jar文件都拷贝到你在项目lib目录中。这是我的解决方案,管用,但不是官方的。*_-
报错信息如下:
groovy.lang.GroovyRuntimeException: Failed to parse template script (your template may contain an error or be trying to use expressions not currently supported): startup failed, Si
mpleTemplateScript1.groovy: 2: unable to resolve class org.codehaus.groovy.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor
@ line 2, column 16.
第六步: 安装AppEngine 插件
grails install-plugin app-engine
安装完成app-engine插件后你需要配置一下appengine sdk的环境变量。
set APPENGINE_HOME=D:\appengine-java-sdk-1.2.1
第七步: 运行项目
grails app-engine run
这里你可以做一些简单的应用...
第八步: 打包项目
生成一个版本号,这是appengine需要的
grails set-version 1
打包项目
grails app-engine package
将grails项目打包成appengine格式。这里需要验证你在google appengine上的账户和密码。
$APPENGINE_HOME/bin/appcfg.cmd update ./target/war
tip:这里使用appengine的appcfg.cmd 打包项目是可能会报下面的错误。
C:\dev\grails\grails-1.1.1\projects\first-app>%APPENGINE_HOME%\bin\appcfg update .\target\war
Email: **********
Reading application configuration data…
Bad configuration: XML error validating .\target\war\WEB-INF\datastore-indexes.xml against C:\dev\gae\appengine-java-sdk-1.2.1\docs\datastore-indexes.xsd
Caused by: cvc-elt.1: Cannot find the declaration of element 'datastore-indexes'.
解决方法是删除这个datastore-indexes.xml 文件,看这个文件的名字应该是数据库的索引标示不知道问什么会报错,只能等appengine插件更新后彻底解决这个问题了。
第九步: 将Grails项目部署到App Engine上
$APPENGINE_HOME/bin/appcfg.sh update ./target/war
grails app-engine deploy
虽然很简单,但还是有些问题,而且不能使用GORM确实还有得不太习惯,不知道在具体做一些应用时还有什么掣肘的问题??
最后打个广告,在Appengine上Grails终于领先rails一小步,我再次呼吁搞Java的如果想玩脚本语言极限开发快速开发TDD开发你最好的选择是Grails而不是rails。Google App Engine已经选择了Grails,你呢?
分享到:
相关推荐
【Grails项目搭建详解】 Grails是一个基于Groovy语言的开源Web应用框架,它简化了开发过程,尤其适合快速构建动态网站。在Eclipse中搭建Grails项目可能相对复杂,但通过以下步骤,即使是初学者也能顺利进行。 1. *...
创建一个Grails应用的第一步通常是使用`grails create-app`命令,这会生成项目的目录结构和基础文件。虽然我们没有图片,但我们可以从文件名"Hello"推测,这可能是应用的初始控制器或服务,或者是一个简单的"Hello,...
在Eclipse中开发Grails项目是一项技术性较强的工作,涉及到多个步骤和配置。Grails是一个基于Groovy语言的开源Web应用框架,它简化了Java开发流程。以下将详细阐述如何在Eclipse环境下配置Grails项目并进行调试。 ...
Grails提供了一系列的命令行工具,如`generate-all`用于生成模型、控制器和视图的初始代码,`run-app`启动应用,`test-app`运行应用测试等。这些工具极大地提高了开发效率。 5. **GORM(Grails Object Relational ...
在本节中,我们将深入探讨"Grails从零开始开发项目二"的相关知识点,这是一个关于使用Grails框架进行Web应用开发的学习过程。Grails是一种基于Groovy语言的开源Web应用框架,它以其高效的开发速度和丰富的插件生态...
6. **使用eclipse运行grails项目.xlsx**:这个文件可能是项目配置或者步骤指南,包含了运行Grails项目的具体步骤和注意事项。打开查看,以便更好地理解项目的运行流程。 7. **GroovyEclipse.zip**:这个文件可能...
Grails默认使用H2内存数据库,如需使用MySQL,需修改`Config.groovy`中的数据库配置。添加如下代码: ```groovy dataSource { pooled = true driverClassName = "com.mysql.jdbc.Driver" username = "your_db_...
Groovy与Java代码可以无缝集成,使得已有的Java项目也能轻松迁移到Grails上。 3. **Grails应用程序结构** - **Controllers**:控制器处理HTTP请求,调用服务层方法,准备数据并转发到视图层。 - **Models**:模型...
4. **命令行工具**:Grails 提供强大的命令行工具,支持创建项目、运行应用、生成代码等任务,大大提升了开发效率。 5. **构建工具**:Grails 使用Gradle作为其构建工具,允许自定义构建流程和依赖管理。 **Grails...
Eclipse会自动为你的项目生成基本的Grails结构,包括`grails-app`目录,其中包含了`controllers`, `domains`, `services`, `views`等子目录。 在Grails项目中,控制器(Controllers)负责处理HTTP请求,领域类...
总结来说,《Grails用户手册》涵盖了从项目创建到部署运行的全过程,包括Grails的基础概念、MVC架构、持久化、插件系统、视图技术、URL映射、测试策略等多个方面。通过学习和实践,开发者可以充分利用Grails的强大...
Grails是一个基于Groovy语言的开源Web应用程序框架,它简化了Java平台上的Web应用开发流程。通过Eclipse,我们可以获得强大的开发工具支持,使得Grails项目的创建、调试和管理更加便捷。 首先,确保你已经安装了...
2. **创建新项目**:通过`grails create-app`命令创建项目,理解`grails-app`目录结构。 3. **编写Domain Class**:学习如何定义领域类,包括关系映射和验证规则。 4. **创建Controller**:了解如何创建控制器,处理...
- **运行Grails应用**:使用`grails run-app`命令启动应用,可以在本地服务器上查看运行效果。 - **测试Grails应用**:Grails内置了单元测试和集成测试框架,通过`grails test`命令执行各种类型的测试。 6. **...
例如:`grails create-app myApp`,这将在指定目录下生成一个新的Grails项目结构。 - 在IntelliJ IDEA中导入该项目,选择"Import Project",然后导航到项目根目录。 3. **定义模型(Model)** - 创建两个Domain类...
`grails test-app`命令即可运行所有相关的测试。 9. **国际化与本地化**:Grails内置了i18n支持,允许开发者轻松处理多语言环境,提高应用的全球适用性。 10. **持续集成与部署**:Grails与常见的CI/CD工具如...
接下来的关键问题是:**如何在Eclipse开发平台上使用Grails类创建工具来创建各种类?** 在Grails官网文档中,有详细的步骤指导如何在Eclipse中配置并使用这些工具。以下是一些关键步骤: 1. **配置Grails作为外部...
在开发过程中,开发者可能会使用Grails的命令行工具来运行应用(`grails run-app`),构建应用(`grails war`),或者执行测试(`grails test`)。Grails的Maven或Gradle集成使得它能够与现代构建工具无缝配合,便于...
使用Robotframework( )编写一个测试用例,以在Google上搜索“ Ruckus Wireless”,并检查是否找到任何结果。 导出RESTful API端点以运行测试用例。 使用Gradle&Docker将应用程序打包到容器中。 向我发送...