Eclipse下的Grails开发环境搭建详解【转载】

Ben的程序员生涯 2011-04-29

转载【http://hi.baidu.com/dianjinglong/blog/item/c7860313db1fe4d6f7039ece.html

1. Grails环境安装

不管用NetBeans还是Eclipse,都需要这一步,即首先将Grails下载下来,并安装好。

Grails官网是:http://grails.org/

下载链接:http://grails.org/Download

这一步很简单,相信大家都不会有什么问题。只是有一个细节必须得提一下,那就是GRAILS_HOME环境变量的设置问题,它必须与你所设置的PATH变量(添加了%GRAILS_HOME%\bin目录之后的那个PATH)在同一个级别上。要么都是用户级变量,要么都是系统级变量。我这里全部设置在用户级变量下,如图:

Eclipse下的Grails开发环境搭建详解【转载】
Eclipse下的Grails开发环境搭建详解【转载】

之后,运行cmd,输入grails命令,回车,如果能够显示一条帮助信息,那么表示这一步成功完成。(我这里使用的版本是Grails1.0.3)

2.Eclipse安装

这里也只有一点需要说明:因为Grails开发是需要编辑gsp文件的,它实际上就是一个使用了一些特殊标签的jsp文件,而Classic版本的Eclipse不带有jsp编辑器,所以建议下载JEE版本的Eclipse。当然,如果你觉得你对JSP语法太熟悉了,完全可以不用它的JSP编辑器,而且你机器内存实在太小的话,可以考虑用Classic版本。

下面将以最新的Eclipse3.4.0JEE版本为例。

3.安装GroovyEclipse插件

其官方网址是:http://groovy.codehaus.org/Eclipse+Plugin

下载地址是:http://dist.codehaus.org/groovy/distributions/update/GroovyEclipse.zip

像一般的Eclipse插件安装一样,可以选择用SoftwareUpdate安装或用link的方式进行安装,在我之前的博客中详细介绍过Eclipse插件安装的问题,而且网上资料也很多,这里就不详细讲了。

[Eclipse插件的载入与安装:http://hi.baidu.com/dianjinglong/blog/item/2d7ce422305deda74623e8e2.html]

这一步完成后,可以在Eclipse的New向导中看到如下内容:

Eclipse下的Grails开发环境搭建详解【转载】

Preferences窗口中也会有一个Groovy的配置项:

Eclipse下的Grails开发环境搭建详解【转载】

4.GroovyEclipse插件配置

如果你英文足够好,前面三个步骤都可以在官网上找到详尽的描述,而且都不复杂。下面这两步将是本文的重点,我将把我使用过程中的一些经验也共享给大家,而且也会列举一些常见问题的解决办法。

4.1首先,需要在Eclipse的classpathvariable中再次设置一个GRAILS_HOME变量,它的值同样指向Grails的安装目录。网上有一种说法是省略了这一步的,那样的话也可以,只不过今后在创建或导入Grails项目的时候,都需要在项目的BuildPath的Libraries下去手工添加Grails的库文件,毫无疑问这样很麻烦!

Eclipse下的Grails开发环境搭建详解【转载】

4.2其次是进入Windows->Preferences->Groovy,将DisableGroovyCompilerGeneratingClassFiles这一项选上,这样可以防止编译器给groovy文件生成class文件,然后存到项目目录中。如果那样的话,有可能会给你之后的开发带来一些不可预料的麻烦。

Eclipse下的Grails开发环境搭建详解【转载】

4.3然后将Grails命令作为一个ExternalTool添加到Eclipse的工具栏中。依次进入Run>ExternalTools>ExternalToolsConfigurations...,在Program下面新建一项,命名为Grails。其详细的设置方法见如下几张图片:

Eclipse下的Grails开发环境搭建详解【转载】....
Eclipse下的Grails开发环境搭建详解【转载】
Eclipse下的Grails开发环境搭建详解【转载】
Eclipse下的Grails开发环境搭建详解【转载】

完成后就可以在ExternalTools工具下找到Grails这一项了:

Eclipse下的Grails开发环境搭建详解【转载】

在之后的开发过程中,如果需要创建一个domain类,那么就选择此工具,然后在弹出的对话框中输入grails命令create-domain-class,然后再在Console窗口的提示后面输入domain类的名称,就可完成domain类的创建。这完全类似于在cmd命令行下进行操作,但NetBeans却不同于此,操作过程要简单很多,这在之后会作相应说明。也许这就是为什么大家都说NetBeans对Grails的支持比Eclipse好的原因之一吧。

另外,如果你想运行一个Grails项目,却最好不要简单的使用这个ExternalTools,然后输入run-app,回车!为什么?这个问题先留在这里,在本文的下一部分再作详细说明。

4.4最后就是关联gsp文件的编辑器,如果你下载的是Classic版本的Eclipse,那么可以跳过这一步。

进入Windows->Preferences->General->Editors->FileAssociations添加一项*.gsp,并将JSP编辑器与其关联,如图:

Eclipse下的Grails开发环境搭建详解【转载】

然后同样在Preferences窗口中,General->ContentTypes,展开Text->JSP,添加一项*.gsp,如图:

Eclipse下的Grails开发环境搭建详解【转载】

至此,Eclipse插件的配置告一段落!下面开始正式的开发工作:

5.正式开始开发

有两种办法开始你的项目开发:第一是在cmd下创建一个grails项目,然后在eclipse里导入,它适合编辑一些已有的项目;第二种办法当然是使用前面辛辛苦苦配置的Eclipse配件来创建一个新的grails项目。

在正式开始运行项目之前,还有一个情况需要说明。不知道为什么,我这里碰到这样一种情况:如果一个项目是从另外的地方被导入的,并且没有拷贝到workspaces下面来,而在此之前,它已经可以在cmd下使用grailsrun-app命令运行起来了,那么在eclipse下也可以正常运行起来;但如果我将其拷贝到workspaces下面来,或者是在eclipse下新建的一个项目,那么就必须在项目的BuildPath中加入java的库文件%JAVA_HOME%\lib\tools.jar,否则就会报ErrorstartingSun'snative2ascii这个错。所以可能需要在适当的情况下将tools.jar放入到项目的BuildPath中,如图:

Eclipse下的Grails开发环境搭建详解【转载】

下面来解答前面留下的一个问题,为什么不要使用之前配置的ExternalTools来运行项目。经过我自己的尝试,使用这个ExternalTools启动项目后,就没有很好的办法来停止这个服务了!使用eclipseConsole面板的Terminate?不行!停了之后,你照样可以通过浏览器访问这个服务。查看系统进程就知道,这个服务进程还存在!难道让我每次停止服务的时候都去中止这个系统进程?貌似太Professional了吧-_-!!所以还是使用下面这个办法来运行项目比较好:

不管是新建项目还是导入的项目,eclipse都会自动给你配置一个RunConfiguration,只是刚开始的时候可能在Run下拉菜单中找不到。要把它调出来的办法就是Run->RunConfigurations...在JavaApplication下面找到以项目名称命名的运行项,如图:

Eclipse下的Grails开发环境搭建详解【转载】

然后点击下面的Run按钮,就可以启动项目。启动第一次之后,eclipse会自动将这一项添加到Run下拉菜单中,今后就不用每次都打开运行设置窗口了。启动之后,这次就可以通过eclipseConsole面板的Terminate按钮来停止服务了!

6.补充几个常见问题及解决办法

到这里,eclipse环境的搭建就完成了。上面其实已经列举了几个有可能出现的问题了,这里最后再补充两个。

6.1Compilationerror:Unabletofindajavaccompiler

项目启动的时候,有的时候可能会报这个错。网上有种解决办法是将eclipse环境里面的jre换成jdk目录,我看了一下我自己的设置,已经是jdk的目录了,但还是出现过这个问题。我不知道它这种解决办法讲的是改哪个地方,也许我找错地方了。不过当我将%JAVA_HOME%\lib\tools.jar文件加入到项目BuildPath中之后,就没有出现这个问题了,大家可以尝试一下。

6.2Variablereferencesemptyselection:${project_loc}

项目启动时,有可能也会报这个错。网上查了几个办法,我试了一下,“刷新一下工程”应该是一个有效的解决办法。

6.3Unabletoinstallbreakpoint...

Eclipse下的Grails开发环境搭建详解【转载】

在groovy文件中设置断点进行调试的时候报了这个错,不知道为什么。但我将项目运行起来后,程序仍然停在了我设置的那个断点处!很奇怪。如果谁知道这是什么原因,欢迎告知!

好了,问题就补充到这,如果大家还有什么好的经验也希望可以一起共享出来,一起进步。

相关推荐