用于JVM的15年历史的语言Groovy现已发布,其中包含一个经过改进的新版本 ,并且其路线图中还有更多内容。
新版本的绝对亮点是对宏的支持,该宏使您可以在创建编译时元编程扩展时直接使用Groovy语法,而不使用内部编译器表示形式。
但这还不是全部。 让我们检查一下新功能和增强功能。
-
groovy
和groovyConsole
现在可以直接运行JUnit 5测试 - Groovy CLIBuilder工具可帮助处理命令行参数,现在支持注释样式定义。 此外,经过修订的CLIBuilder版本现在支持Commons CLI和Picocli支持的解析器实现
- 重复注解
- 各种JSON定制
- 现在可以在运行时访问方法参数的名称,JDK 8也支持该功能
- 对于AST转换,
@Canonical
现在是一个元注释,可以更灵活地使用组成注释中的注释属性。 开发人员还可以定义自定义元注释 -
@Canonical
扩展为@TupleConstructor
,@EqualsAndHashCode
和@ToString
批注,带有批注,分配给支持它们的组件批注的属性
为了使用Groovy进行构建,需要JDK 8或更高版本。 JDK 7是Groovy 2.5支持的JRE的最低版本。
此外,根据官方发行说明,还有大量固定的问题,在某些情况下,这些问题也可能被视为破坏更改。 看看这里的清单。
还请参见: Micronaut:支持Java,Groovy和Kotlin的轻量级框架
尽管如此,仍然存在一些问题:
- 该发行版未包含有关java.time扩展的GDK文档。 它将包含在第一个维护版本(2.5.1)中,但与此同时,可以在此处找到。
-
groovy.util.CliBuilder
用户除了groovy
或groovy-all
外,还需要包括org.codehaus.groovy:groovy-cli-commons
依赖于其编译类路径。 在下一个维护版本之后将不需要此功能,但是无论如何,用户都应从该类中迁移,因为它将从Groovy的下一个主要版本中删除。 - Spock 1.1-groovy-2.4的用户在某些测试中可能会发现奇怪的ClassCastException错误。 您可以查看此GitHub存储库以获取帮助。
- 结合使用
final
和@CompileStatic
或final
和Spock的用户可能会看到来自最终变量分析器的错误。 同时,您可能需要暂时删除final
修饰符。 - 需要groovy-xml模块并在JDK9及更高版本上运行的用户,可能需要使用
--add-modules java.xml.bind
命令行选项来修复由JDK9 +引起的向后兼容性方面的问题。 - 由于JDK中将来计划的某些限制,JDK9 +会在包括Groovy在内的许多库中生成警告,但正在进行重新设计Groovy的各个部分以减少/删除这些警告的工作。 希望将警告作为临时措施的用户可以考虑使用JDK9 +提供的
--add-opens
转义子句。 有关要添加的潜在列表,请参见Groovy主分支上的commit92bd96f
(当前已还原)。
还有更多
尽管Groovy 2.5充满了增强功能和已解决的问题,但我们还没有完成。 预计2.6和3.0版本将在明年发布,它们分别针对Java 7和Java 8和9的用户。 在这里查看完整的Groovy路线图。
翻译自: https://jaxenter.com/groovy-major-improvements-145138.html