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\