动态语言IDE:来自Groovy-Eclipse的新闻

Groovy-Eclipse项目领导James Ervin介绍了当前的工作重点,包括稳定性改进、简化、定期发布和解决代码交叉依赖等问题。此外,Michael Klenk讨论了重构功能的实现,包括Extract Method、Inline Method以及重命名等,这些功能旨在提升Groovy开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这一条新闻属于我们有关动态语言IDE系列文章的一部分。第一篇是有关Ruby IDE的,其他部分可以通过DynamicLanguageIDEs标签找到。

\

现在SpringSource已经收购了Groovy和Grails的幕后公司,Groovy的普及率将进一步提高,并对Java开发者更具吸引力。

\

我们采访了Groovy Eclipse项目的领导James Ervin,询问了他们当前的工作情况:

\
目前由我和另外几个感兴趣的人一起开发这一plugin。Guillaume La Forge让我担当项目领导,因此我能够更新该plugin的官方版本,将已积累了一段时间的问题修复包含在内。我目前主要集中在稳定性、简化、定期发布版本并跟踪JIRA站点上的一些顶级问题等。例如,我正设法完成利用Groovy编译器中联合编译(joint compilation)能力(在需要的时候,委托Javac同时编译Java和Groovy的能力)方面的工作。这将解决那些涉及到附加二进制groovy目标目录的令人头疼的问题,以及用Groovy编写的代码与用Java编写的代码交叉依赖的问题。Michael Klenk和他的小组在Groovy Eclipse对重构(refactoring)的支持方面做了许多卓越的工作。在我完成手头的任务之后,集成他们的工作将是我的首要任务。
\

Groovy-Eclipse已经包含了Groovy实现因而并不需要一个外部Groovy:

\
Groovy Eclipse包含一个内嵌的Groovy运行时库,它本身是一个独立的Eclipse plugin(或者按OSGi的说法,一个bundle)。之所以这样,有以下几个原因:首先,一个内嵌的运行时可以让我们有机会使用Groovy编写该插件的部分内容。如俗话所说,这无异于“吃自己的狗食。”我更喜欢原始的表达,它更符合你的意愿,然而这却是一个友好的设置。其次,包含一个内嵌的运行时库,显然可以让用户跳过安装运行时这一步。最后,实际上是缺点,我们使用内嵌的groovy运行时来解析和编译项目中的代码。最后一点对我来说是痛处,我在“ Groovy Eclipse路线图”中已做了说明。
\

看一下这个路线图,我们可以看到几个有趣的内容:

\
\
  • [...]提供至少一个支持Grails开发的基础层。我知道在提供Grails支持方面已经有一些现成工作了,但是我知道那是非常基础的那一类,Grails还有很多东西强烈要求IDE予以支持。\
  • [...]能够在Eclipse Plugin开发过程中使用Groovy语言。这实际上更多的是一个个人意愿,我认为对Grails的支持或我所罗列的其他各点将会影响更多的人。能够用Groovy来做越来越多地Groovy Eclipse开发工作还是非常好的,不是吗?我是这么认为的。这样做的部分结果是,我们可以尝试利用和改善对EMF的Groovy支持。\
  • [...]Groovy编译器与Eclipse JDT支持能够更好地集成。我看到Scala Eclipse plugin中的一个例子,其中该项目把Eclipse Java性质增加进了该项目,但是Java Builder并没有增加进来。这就允许Scala plugin提供Scala工具来构建类文件。我想Groovy Eclipse应该具备相似的功能,既然groovy编译器现在也要编译Java,那就更应如此了。\
\

Groovy IDE的其他实现一定也在努力解决类似的问题,你们之间有协作吗?

\
我已经参与了GROCIDE项目的若干讨论,这在我的Groovy Eclipse优先级列表中也被排在较高优先级。我们第一位的问题是本项目没有资源(即,工时,尤其是专职的),但是各个IDE支持工具可以共享许多东西。这是我们必须包含进来的,尤其是有这么多高人针对Groovy在IntelliJ和NetBeans工具支持上已经做出了不少卓越的工作,我们更应该这样做。

\我欲做出如下总结。我在Codehaus上Groovy Eclipse项目的主页里增加了如下内容:

\“Groovy Eclipse plugin的目标是提升Groovy平台和生态系统,使其对工作于Eclipse SDK中的Java开发者来说,成为一个可行且高效的开发环境。”

\这是尽我所能对我的目标所进行的臆测。今天,至少在北美,大量的Java开发是在Eclipse SDK上进行的。我想让Groovy兴旺起来,但是要做到这一点,我们必须为Eclipse做出一个非常好的Groovy plugin!

\

至于James所提到的重构,我们采访了Michael Klenk:

\
我们是从实现Extract Method重构功能开始着手的。在第一小步之后,我们开始实现其他的重构功能:Inline Method,重命名方法、变量、属性及类。我们还提供了一个源代码格式化工具以及一个支持开发者日常工作的层级视图。
\

你所提到的这些重构功能与手工操作(比方说重命名)相比有多好?

\
起先,查找并替换看起来是个不错的开始,但是程序中的名字通常是处于一个上下文中的,理解这一点非常重要。想象一下,如果写了两个方法,每个都声明了一个局部变量,且名字一致。用简单地查找和替换,你必须手工决定应该重命名哪一个变量。

\另一个能证明重构多么智能的例子是:创建一个接口,它声明了一个抽象方法。现在这个方法在好几个类中都实现了。如果你要重命名这个方法,必须检查继承层次中的所有类,以找到应该做出改变的所有位置。

\对于Groovy代码的抽象语法树的分析,可以让我们搜集到我们需要的所有相关信息。

\

这个列表给人的印象已经相当深刻了,这些特性将会包含在哪个版本中呢?

\
我们把所有这些重构特性都整合到Groovy-Eclipse项目开发主干中了。很快就会发布一个稳定版,届时所有开发者都可以使用这些重构特性。我们希望多数用户都使用这些重构特性并反馈改进意见。我们正在考虑实现的另一个比较酷的特性是,Java和Groovy语言间跨语言的重构特性。
\

Groovy-Eclipse的官方网站和专门的Groovy-Eclipse重构网站可以获得更多信息。

\

这一条新闻是我们有关动态语言IDE系列文章的一部分。其他部分可以在InfoQ的DynamicLanguageIDEs标签下找到。

\

查看英文原文:Dynamic Language IDEs: News From Groovy-Eclipse

Eclipse(中文语言包下载地址)Indigo,Helios,Galileo,Ganymede,Europa EclipseJSFMyeclipseLinux Babel Language Packs for Europa 3.3 (MyEclipse 6.5) • BabelLanguagePack-birt-zh_3.3.1.v20101211042632.zip(99.76%) • BabelLanguagePack-datatools-zh_3.3.1.v20101211042632.zip (100%) • BabelLanguagePack-eclipse-zh_3.3.1.v20101211042632.zip (98.09%) • BabelLanguagePack-webtools-zh_3.3.1.v20101211042632.zip (45.28%) Babel Language Packs for Ganymede Eclipse 3.4 • BabelLanguagePack-birt-zh_3.4.0.v20101211020322.zip (99.96%) • BabelLanguagePack-datatools-zh_3.4.0.v20101211020322.zip (100%) • BabelLanguagePack-dsdp.tm-zh_3.4.0.v20101211020322.zip (21.2%) • BabelLanguagePack-eclipse-zh_3.4.0.v20101211020322.zip (99.34%) • BabelLanguagePack-modeling.emft-zh_3.4.0.v20101211020322.zip (24.23%) • BabelLanguagePack-modeling.gmf-zh_3.4.0.v20101211020322.zip (34.18%) • BabelLanguagePack-modeling.m2m-zh_3.4.0.v20101211020322.zip (23.61%) • BabelLanguagePack-modeling.m2t-zh_3.4.0.v20101211020322.zip (24.88%) • BabelLanguagePack-modeling.mdt-zh_3.4.0.v20101211020322.zip (70.07%) • BabelLanguagePack-rt.equinox-zh_3.4.0.v20101211020322.zip (28.93%) • BabelLanguagePack-technology.jwt-zh_3.4.0.v20101211020322.zip (35.45%) • BabelLanguagePack-technology.mat-zh_3.4.0.v20101211020322.zip (3.29%) • BabelLanguagePack-tools.cdt-zh_3.4.0.v20101211020322.zip (83.4%) • BabelLanguagePack-tools.gef-zh_3.4.0.v20101211020322.zip (77.97%) • BabelLanguagePack-tptp.platform-zh_3.4.0.v20101211020322.zip (18.88%) • BabelLanguagePack-webtools-zh_3.4.0.v20101211020322.zip (82.37%) • BabelLanguagePack-webtools.sourceediting-zh_3.4.0.v20101211020322.zip (85.13%) Babel Language Packs for Galileo Eclipse 3.5 • BabelLanguagePack-datatools-zh_3.5.0.v20101211082259.zip (86.23%) • BabelLanguagePack-dsdp.mtj-zh_3.5.0.v20101211082259.zip (25.09%) • BabelLanguagePack-dsdp.tm-zh_3.5.0.v20101211082259.zip (24.79%) • BabelLanguagePack-eclipse-zh_3.5.0.v20101211082259.zip (96.21%) • BabelLanguagePack-modeling.emf-zh_3.5.0.v20101211082259.zip (70.47%) • BabelLanguagePack-modeling.emft-zh_3.5.0.v20101211082259.zip (23.53%) • BabelLanguagePack-modeling.m2m-zh_3.5.0.v20101211082259.zip (24.06%) • BabelLanguagePack-modeling.m2t-zh_3.5.0.v20101211082259.zip (10.41%) • BabelLanguagePack-modeling.mdt-zh_3.5.0.v20101211082259.zip (28.08%) • BabelLanguagePack-modeling.tmf-zh_3.5.0.v20101211082259.zip (46.15%) • BabelLanguagePack-rt.ecf-zh_3.5.0.v20101211082259.zip (15.93%) • BabelLanguagePack-rt.equinox-zh_3.5.0.v20101211082259.zip (37.85%) • BabelLanguagePack-rt.rap-zh_3.5.0.v20101211082259.zip (90.03%) • BabelLanguagePack-stp.bpmn-zh_3.5.0.v20101211082259.zip (21.36%) • BabelLanguagePack-stp.sca-zh_3.5.0.v20101211082259.zip (22.4%) • BabelLanguagePack-technology.actf-zh_3.5.0.v20101211082259.zip (7.39%) • BabelLanguagePack-technology.dltk-zh_3.5.0.v20101211082259.zip (59.44%) • BabelLanguagePack-technology.jwt-zh_3.5.0.v20101211082259.zip (35.6%) • BabelLanguagePack-technology.mat-zh_3.5.0.v20101211082259.zip (3.29%) • BabelLanguagePack-technology.packaging-zh_3.5.0.v20101211082259.zip (11.11%) • BabelLanguagePack-technology.subversive-zh_3.5.0.v20101211082259.zip (23.45%) • BabelLanguagePack-tools.cdt-zh_3.5.0.v20101211082259.zip (80.89%) • BabelLanguagePack-tools.gef-zh_3.5.0.v20101211082259.zip (77.78%) • BabelLanguagePack-tools.mylyn-zh_3.5.0.v20101211082259.zip (52.38%) • BabelLanguagePack-tools.orbit-zh_3.5.0.v20101211082259.zip (5.24%) • BabelLanguagePack-tools.pdt-zh_3.5.0.v20101211082259.zip (72.51%) • BabelLanguagePack-tptp.platform-zh_3.5.0.v20101211082259.zip (18.98%) • BabelLanguagePack-webtools.common-zh_3.5.0.v20101211082259.zip (60.81%) • BabelLanguagePack-webtools.dali-zh_3.5.0.v20101211082259.zip (31.89%) • BabelLanguagePack-webtools.ejbtools-zh_3.5.0.v20101211082259.zip (97.35%) • BabelLanguagePack-webtools.jeetools-zh_3.5.0.v20101211082259.zip (96.12%) • BabelLanguagePack-webtools.jsf-zh_3.5.0.v20101211082259.zip (41.36%) • BabelLanguagePack-webtools.servertools-zh_3.5.0.v20101211082259.zip (89.98%) • BabelLanguagePack-webtools.sourceediting-zh_3.5.0.v20101211082259.zip (80.4%) • BabelLanguagePack-webtools.webservices-zh_3.5.0.v20101211082259.zip (93.6%) Babel Language Packs for Helios Eclipse 3.6 • BabelLanguagePack-birt-zh_3.6.0.v20101211043401.zip (94.91%) • BabelLanguagePack-datatools-zh_3.6.0.v20101211043401.zip (84.64%) • BabelLanguagePack-dsdp.mtj-zh_3.6.0.v20101211043401.zip (15.75%) • BabelLanguagePack-dsdp.sequoyah-zh_3.6.0.v20101211043401.zip (14.62%) • BabelLanguagePack-dsdp.tm-zh_3.6.0.v20101211043401.zip (24.77%) • BabelLanguagePack-eclipse-zh_3.6.0.v20101211043401.zip (92.91%) • BabelLanguagePack-modeling.emf.validation-zh_3.6.0.v20101211043401.zip (67.37%) • BabelLanguagePack-modeling.emft.eef-zh_3.6.0.v20101211043401.zip (39.89%) • BabelLanguagePack-modeling.gmp.gmf-notation-zh_3.6.0.v20101211043401.zip (41.15%) • BabelLanguagePack-modeling.gmp.gmf-runtime-zh_3.6.0.v20101211043401.zip (35.73%) • BabelLanguagePack-modeling.gmp.gmf-tooling-zh_3.6.0.v20101211043401.zip (31.98%) • BabelLanguagePack-modeling.mdt.ocl-zh_3.6.0.v20101211043401.zip (40.51%) • BabelLanguagePack-rt.equinox-zh_3.6.0.v20101211043401.zip (100%) • BabelLanguagePack-rt.equinox.p2-zh_3.6.0.v20101211043401.zip (24.77%) • BabelLanguagePack-rt.rap-zh_3.6.0.v20101211043401.zip (76.7%) • BabelLanguagePack-technology.actf-zh_3.6.0.v20101211043401.zip (7.05%) • BabelLanguagePack-technology.egit-zh_3.6.0.v20101211043401.zip (10.53%) • BabelLanguagePack-technology.jgit-zh_3.6.0.v20101211043401.zip (0.53%) • BabelLanguagePack-technology.linux-distros-zh_3.6.0.v20101211043401.zip (28.37%) • BabelLanguagePack-technology.packaging.mpc-zh_3.6.0.v20101211043401.zip (10.48%) • BabelLanguagePack-tools.cdt-zh_3.6.0.v20101211043401.zip (72.44%) • BabelLanguagePack-tools.gef-zh_3.6.0.v20101211043401.zip (69.9%) • BabelLanguagePack-tools.mat-zh_3.6.0.v20101211043401.zip (3.84%) • BabelLanguagePack-tools.mylyn-zh_3.6.0.v20101211043401.zip (50.8%) • BabelLanguagePack-tools.ptp-zh_3.6.0.v20101211043401.zip (17.54%) • BabelLanguagePack-tools.ptp.photran-zh_3.6.0.v20101211043401.zip (28.68%) • BabelLanguagePack-webtools.common-zh_3.6.0.v20101211043401.zip (57.76%) • BabelLanguagePack-webtools.dali-zh_3.6.0.v20101211043401.zip (24.78%) • BabelLanguagePack-webtools.ejbtools-zh_3.6.0.v20101211043401.zip (95.14%) • BabelLanguagePack-webtools.jeetools-zh_3.6.0.v20101211043401.zip (100%) • BabelLanguagePack-webtools.jsdt-zh_3.6.0.v20101211043401.zip (80.47%) • BabelLanguagePack-webtools.jsf-zh_3.6.0.v20101211043401.zip (39.73%) • BabelLanguagePack-webtools.servertools-zh_3.6.0.v20101211043401.zip (88.38%) • BabelLanguagePack-webtools.sourceediting-zh_3.6.0.v20101211043401.zip (75.61%) • BabelLanguagePack-webtools.webservices-zh_3.6.0.v20101211043401.zip (75.69%) Babel Language Packs for Indigo Eclipse 3.7 • BabelLanguagePack-birt-zh_3.7.0.v20110723043401.zip (91.74%) • BabelLanguagePack-eclipse-zh_3.7.0.v20110723043401.zip (87.19%) • BabelLanguagePack-modeling.emf.cdo-zh_3.7.0.v20110723043401.zip (25%) • BabelLanguagePack-modeling.emft.emf-facet-zh_3.7.0.v20110723043401.zip (9.79%) • BabelLanguagePack-modeling.gmp.graphiti-zh_3.7.0.v20110723043401.zip (20.45%) • BabelLanguagePack-modeling.mdt.modisco-zh_3.7.0.v20110723043401.zip (5.65%) • BabelLanguagePack-mylyn-zh_3.7.0.v20110723043401.zip (50.63%) • BabelLanguagePack-rt.equinox-zh_3.7.0.v20110723043401.zip (99.27%) • BabelLanguagePack-rt.equinox.p2-zh_3.7.0.v20110723043401.zip (22.2%) • BabelLanguagePack-technology.actf-zh_3.7.0.v20110723043401.zip (4.46%) • BabelLanguagePack-technology.bpel-zh_3.7.0.v20110723043401.zip (21.06%) • BabelLanguagePack-technology.egit-zh_3.7.0.v20110723043401.zip (16.84%) • BabelLanguagePack-technology.jgit-zh_3.7.0.v20110723043401.zip (2.72%) • BabelLanguagePack-technology.jubula-zh_3.7.0.v20110723043401.zip (11.55%) • BabelLanguagePack-technology.uomo-zh_3.7.0.v20110723043401.zip (3.6%) • BabelLanguagePack-tools.cdt-zh_3.7.0.v20110723043401.zip (68.19%) • BabelLanguagePack-tools.gef-zh_3.7.0.v20110723043401.zip (66.21%) • BabelLanguagePack-tools.objectteams-zh_3.7.0.v20110723043401.zip (5.51%) • BabelLanguagePack-webtools.dali-zh_3.7.0.v20110723043401.zip (18.4%) • BabelLanguagePack-webtools.jsdt-zh_3.7.0.v20110723043401.zip (80.48%) • BabelLanguagePack-webtools.jsf-zh_3.7.0.v20110723043401.zip (39.7%) • BabelLanguagePack-webtools.libra-zh_3.7.0.v20110723043401.zip (26.04%) • BabelLanguagePack-webtools.servertools-zh_3.7.0.v20110723043401.zip (88.15%) • BabelLanguagePack-webtools.sourceediting-zh_3.7.0.v20110723043401.zip (74.53%) • BabelLanguagePack-webtools.webservices-zh_3.7.0.v20110723043401.zip (75.76%) 两种方式 1. 将解压后的文件放入 Eclipse 对应的两个目录 features plugins 2. LINK文件方式(推荐 ), 在Eclipse根目录下面Link目录存放文件如: BabelLanguagePack-webtools-zh.txt 文件内容 path=./myplugins/BabelLanguagePack-webtools-zh_3.3.1.v20101211042632 下载站点 http://download.actuatechina.com http://mirror.bjtu.edu.cn http://ftp.neu.edu.cn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值