我将要编写几个 Maven 插件来减轻研发人员的工作负担。我正在考虑是用 Groovy 还是用 Java 编写插件。
插件很可能需要:
- 使用 Git 命令,例如 checkout、clone 等。
- 从远程存储库(我们的内部 Nexus)下载特定工件的 pom.xml 文件
- 解析 pom.xml 文件以提取多个 XML 元素(例如 SCM 标签,以及我的插件所需的特定元素)。
- 使用文件系统(目录是否存在、删除目录等)。
- 从 pom 文件中获取元数据信息,例如依赖关系。
您从使用两种语言编写插件的丰富经验中获得的任何提示都将对我有很大帮助!
最佳答案
我对这两种语言都有丰富的经验,也写过一些 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
的实例提供给插件.
关于java - 用Groovy写一个Maven插件和Java相比有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3890052/