Apache Groovy 2.5发布,绝对亮点是对宏的支持!

基于JVM动态语言的老将Apache Groovy发布全新的版本,其中包含突破性增强功能和前景光明的路线图!首先来看看最新版本的亮点。

Apache Groovy 2.5发布,绝对亮点是对宏的支持!

新版本的绝对亮点是对宏的支持,它允许你在创建compile-time元编程扩展时直接使用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的最低版本。

尽管如此,仍然存在一些问题:

  • 用于java.time扩展的GDK文档未包含在发行版中。它将包含在第一个维护版本(2.5.1)中。
  • groovy.util.CliBuilder的用户还需要包含org.codehaus.groovy:除了groovy或groovy-all之外,groovy-cli-commonsdependency在它们的编译类路径上。这将在下次维护版本发布后不再需要,但用户应该从该类别迁移出去,因为它将从下一个主要版本的Groovy中移除。
  • Spock 1.1-groovy-2.4的用户在某些测试中可能会发现奇怪的ClassCastException错误。
  • 结合final和@CompileStatic或final和Spock的用户可能会看到最终变量分析器中的错误。在此期间,你可能需要暂时删除finalmodifier。
  • 需要groovy-xml模块并在JDK9及更高版本上运行的用户可能需要使用--add-modules java.xml.bind命令行选项来修复由JDK9 +引起的向后兼容中断。
  • JDK9 +由于JDK中一些计划中的未来限制而产生包括Groovy在内的许多库的警告,但正在进行重新设计部分Groovy以减少/移除这些警告的工作。希望将警告作为临时措施的用户,可以考虑使用由JDK9 +提供的--add-opens escape子句。

还有更多

虽然Groovy 2.5充满了增强和修复的问题,但Groovy的未来路线图更值得期待,2.6和3.0版本预计在明年内发布,它们会分别针对Java 7和Java 8和9的用户。

相关推荐