Groovy简介

        Groovy是Java虚拟机的敏捷和动态语言,以Java语言的优势为基础,添加了从Python、Ruby和Smalltalk等语言中借鉴的特性。提供流行的编程语言特性,学习成本几乎为零。提供静态类型检查的能力,并静态地编译成java字节码,以获得健壮性和性能,与所有现有的Java类和库无缝集成,可以在任何可以使用java的地方使用它。通过其强大的处理原语、OO能力和Ant DSL使编写shell和构建脚本变得容易。在开发Web,GUI,数据库或控制台程序时通过减少框架性的代码大大提高了开发者的效率。支持DSL(Domain Specific Languages领域定义语言)和其它简洁的语法,让代码变得易于阅读和维护。并且支持单元测试,可以简化测试。

基本特性

        支持函数式编程,不需要main函数。
        一些新的运算符。
        默认导入常用的包。
        断言不支持jvm的-ea参数进行开关。
        支持对对象进行布尔求值。
        类不支持default作用域,且默认作用域为public。
        groovy中基本类型也是对象,可以直接调用对象的方法。
        动态类型。
        闭包。

        Groovy中的类名不需要像java一样必须只能有一个public的类与文件名相同。Groovy中一个文件可以包含多个public的类定义,并且也可以没有任何类定义。

生态圈
        除了语言和它的API之外,还围绕Groovy催生出了一个卓有成效的项目生态系统,包括web框架、桌面应用程序框架、并发性、测试等各种主题,它们将Groovy作为核心。
        Grails是JVM的一个开源、完整的堆栈、web应用程序框架。它利用了Groovy编程语言和约定优于配置,以提供高效的、流媒体的开发体验。
        Gradle可以自动化构建、测试、发布、部署以及更多的软件包或其他类型的项目,如生成的静态网站、生成的文档或其他任何东西。
        Spock是Java和Groovy应用程序的测试和规范框架。让它脱颖而出的原因是它漂亮而富有表现力的规范语言。得益于它的JUnit运行程序,Spock与大多数ide、构建工具和持续集成服务器兼容。
        GPars框架为Java开发人员提供了直观和安全的方法来并发地处理Java或Groovy任务。利用Groovy编程语言的巨大灵活性和基于已证实的Java技术,我们的目标是使多核硬件的并发编程变得直观、健壮和愉快。
        Ratpack是一个简单的、有力的、用于创建高性能web应用程序的工具包。
        Griffon是在JVM中开发桌面应用程序的应用程序框架,Groovy是首选的语言。受Grails的启发,Griffon遵循了约定优于配置范例,并结合了直观的MVC架构和命令行界面。
        Geb是一个强大的浏览器功能测试框架,它允许您在Groovy中快速轻松地编写功能测试。它汇集了WebDriver的强大功能、jQuery内容选择的优雅性、页面对象建模的健壮性以及Groovy语言的表达性。
        SDKMAN是在大多数基于Unix的系统上管理多个软件开发工具包的并行版本的工具。它提供了一个方便的命令行界面,用于安装、切换、删除和列出候选项。
        还有许多其他的项目使用或构建了Groovy编程语言。比如可以在gitHub上查看Trending

引入
        如果要在项目中引用groovy相关包可以使用maven或者直接下载导入。 
        不包含模块的groovy核心包。

<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>2.4.15</version>

        groovy的不同模块,$module代表不同的模块,如:ant、bsf、console、docgenerator、groovydoc、groovysh、jmx、json、jsr223、servlet、sql、swing、test、testng、xml。

<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-$module</artifactId>
<version>2.4.15</version>
         groovy核心加上所有的模块。
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.15</version>

猜你喜欢

转载自blog.csdn.net/asty9000/article/details/80267984