与Java相比,在Groovy中编写Maven插件有什么好处?

时间:2010-10-08 11:32:57

标签: java git maven-2 groovy

我即将编写几个Maven插件来缓解R& D人的生活。我正在考虑用Groovy或Java编写插件。

该插件很可能需要:

  • 使用结帐,克隆等Git命令
  • 从远程存储库(我们的内部Nexus)下载特定工件的pom.xml文件
  • 解析pom.xml文件以提取多个XML元素(例如SCM标记,以及我的插件所需的特定元素)。
  • 使用文件系统(目录存在,删除目录等)。
  • 从pom文件中获取元数据信息,例如依赖项。

您在使用这两种语言编写插件的丰富经验中可能获得的任何提示都将对我有所帮助!

1 个答案:

答案 0 :(得分:6)

我对这两种语言都有很多经验,并且还编写了一些Maven插件。我用Java编写它们,因为我别无选择,但如果我有选择,我会选择Groovy。

在我看来,除非性能绝对至关重要,否则无论你在做什么,Groovy通常都是比Java更好的选择。我这样说是因为在Groovy中编写内容通常比在Java中编写内容少30%-50%。使用Groovy时省略的大多数代码都被认为是样板Java代码。

Groovy的紧凑性是由于两个因素

  • 更复杂的语言功能(闭包,属性,运算符重载,默认参数等)
  • JDK的高效率扩展。 GDK为Java标准库添加了许多非常有用的方法。例如,在Java中,需要大约10-20行代码来读取文件的内容(并正确处理异常)。使用Groovy,您只需使用:

    String fileContent = new File('/foo/bar/baz.txt').text
    

此外,GMaven提供对writing Maven plugins in Groovy的支持,它看起来比在Java中编写插件时必须使用的AbstractMojo类好很多

除了

您提到您的插件需要解析pom.xml。如果这是安装插件的项目的pom.xml,则不需要解析内容,因为插件可以通过MavenProject的实例获得有关项目的所有信息。