通过前一章的快速入门,您应该对 Grails 有了一个感性的认识。下面,我们将改进开发工具,将使用 Eclipse 来代替记事本,搭建一个 Grails 的开发环境。我们推荐使用 Eclipse + WTP(Web Tools Platform)+ Groovy 插件,Eclipse 可用于组织工程、运行程序,WTP 可以用于编辑 GSP 文件,Groovy 插件则可以用于编辑 groovy 代码,提供源代码高亮等功能。Eclipse 和 WTP 的安装配置本文就不做介绍了,建议下载 All in One 的 Eclipse 安装包,解压即可使用。
下面主要介绍 Groovy 插件的安装方法:
首先启动 Eclipse,点击
Help > Software Updates > Find and Install…:
图 9. 更新和安装
图 9. 更新和安装
在弹出窗口中选择 Search for new features to install 点击 Next:
图 10. 查找新特性
图 10. 查找新特性
然后在新窗口中点击 New Remote Site...,并在弹出窗口中输入:
Name: Groovy
URL: http://dist.codehaus.org/groovy/distributions/updateDev/
点击 Finish,接下来,Eclipse 会去搜索 Groovy 插件,并完成下载和安装。
Groovy 插件安装成功后,将 Contact 导入到 Eclipse 中。完成后,添加一个 Classpath Variables(Windows > Preferences > Java > Build Path > Classpath Variables)
图 11. 添加 Classpath Variables
图 11. 添加 Classpath Variables
然后还需要禁用 Groovy 插件的 Class auto generate 的功能,在 Contact 上
右键 > Properties > Groovy Project properties > 选择 Disable Groovy Compiler Generating class Files > 点击 OK:
图 12. 禁用 Class auto generate
图 12. 禁用 Class auto generate
接下来,配置使 Web tools 能够编辑 GSP。打开
Windows > Preference > General > Editors > File Associations,添加 *.gsp,并关联到 JSP Editor 即可:
图 13. 将 gsp 关联到 JSP Editor
图 13. 将 gsp 关联到 JSP Editor
然后设置 Content Types:Windows > Preference > General > Content Types, 为 JSP 类型文件添加扩展名 *.gsp:
图 14. 为 JSP 类型文件添加扩展名 *.gsp
图 14. 为 JSP 类型文件添加扩展名 *.gsp
至此,开发环境配置完毕。Grails 已经为 Eclipse 创建了描述运行的文件,点击 Run > Open Run Dialog。
图 15. 运行
图 15. 运行
可以在 Java Application 下看到名为 Contact 的运行项目。选择并点击 Run 按扭。但 Grails 提供的 run 脚本目前还存在 bug,运行时可能会抛出如下异常:
java.lang.IllegalArgumentException: Variable $tools.jar in groovy-starter.conf
references a non-existent System property!
Try passing the property to the VM using -Dtools.jar=myValue
因此最后还需要修改 Contact 的运行参数,加入:
-Dtools.jar=%JAVA_HOME%\lib\tools.jar
图 16. 修改 Contact 运行参数
图 16. 修改 Contact 运行参数
现在,可以在 Eclipse 下运行和调试 Grails 程序了。
图 17. 运行和调试 Grails 程序
图 17. 运行和调试 Grails 程序
在 Eclipse下运行 Grails 程序与在控制台运行本质上是一样的,具体使用哪种方式,读者可以自己选择。
fig009.jpg fig010.jpg fig011.jpg fig012.jpg fig013.jpg fig014.jpg fig015.jpg fig016.jpg fig017.jpg