Apache基金会最近发布了Groovy2.5,新功能包括:
\\- AST转换的改进\
- 新的宏支持\
- 其他杂项改进\
运行Groovy 2.5至少需要JDK 7,在JDK 9+上运行可以忽略良性警告。
\\尽管最近人们把关注点转到了其他JVM语言上(如Kotlin),但Groovy仍然有很大的增长。正如Groovy提交者、OCI首席软件工程师Paul King博士在最近的一次网络研讨会上所说的:
\\\\\Groovy的下载量说明,它仍然是继Java之后JVM上第二大最受欢迎的语言,而且这个数字还在不断增加。今年第一季度,下载次数为9000万次,比去年第一季度下载次数的两倍还要多。所以我们可以看到,人们仍然对Groovy很感兴趣。
\
在过去的12个月里,Groovy增加了30个新的提交者。
\\AST转换——注解
\\如下图所示,为了保证转换之间的一致性,对很多现有的AST转换进行了改进,并在2.5版本中添加了11个新的转换。在Groovy 3.0中添加了一个额外的转换,但在GA发布之前可能会出现更多转换。
\\
\\AST转换——宏
\\如上所述,Groovy提供了大量的内置AST转换。开发人员也可以创建自己的自定义转换,前提是需要了解Groovy语法结构的内部表示。
\\2.5版本中的宏功能消除了了解语法结构内部表示的需要,正如发行说明中所定义的那样:
\\\\\在创建编译时元编程扩展时,宏可以让你直接使用Groovy语法,而不是使用内部编译器表示。因此,转换的创建将掌握在所有Groovy程序员手中,而不仅仅是Groovy编译器创建者。
\
例如,假设开发人员希望创建一个转换(@Info
),用于生成一个方法(@getInfo()
)。在2.5版本之前,需要编写以下代码:
\...\def clazz = new MethodCallExpression(new VariableExpression(\"this\"), \"getClass\