Groovy是什么
直接摘录官网的介绍:
是一个基于Java虚拟机的敏捷动态语言。
构建在强大的Java语言之上 并添加了从Python,Ruby和Smalltalk等语言中学到的诸多特征。
为Java开发者提供了现代最流行的编程语言特性,而且学习成本很低(几乎为零)。
支持DSL(Domain Specific Languages领域定义语言)和其它简洁的语法,让你的代码变得易于阅读和维护。
Goovy拥有处理原生类型,面向对象以及一个Ant DSL,使得创建Shell Scripts变的非常简单。
在开发Web,GUI,数据库或控制台程序时 通过减少框架性代码 大大提高了开发者的效率。
支持单元测试和模拟(对象),可以简化测试。
无缝集成 所有已经存在的 Java对象和类库。
直接编译成Java字节码,这样可以在任何使用Java的地方 使用Groovy。
Java 与 Groovy 的共存关系
在配置要 Maven 和 IDE 插件后,Java 代码中可以直接引用 Groovy 代码。Groovy 的代码也可以直接引用 Java 的代码,可以说是无缝继承。
而 Java 和 Groovy 编译出来的 .class 文件其实是一样的,运行的事后,JVM 是无法区分它来自于 Java 还是 Groovy 的。
Groovy 的用武之地
所以是不是说,项目中使用 Groovy 代码是锦上添花,有利无弊的?
其实不然,虽然 Groovy 编译出来的中间语言没什么特别的,但是同样的依据语句,可能在 Groovy 下编译出来的中间语言可能会性能很糟糕。
为什么性能糟糕呢?
举个例子:
Java 写出来的数组就是数组,但是 Groovy 下写出来的数组为了支持动态添加删除,那它底层必然不是一个数组。
也就是说,很多语法糖和便捷的语法同时也带来了性能上的损耗。
那 Groovy 最适合用在哪?
答案非常简单:单元测试!
开始配置 Groovy
如果你在用 IntelliJ ,那它们已经支持 Groovy 了。
Eclipse 需要下载一下插件:http://groovy.codehaus.org/Eclipse+Plugin
接下来要开始配置 Maven 的 POM 文件了:
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${groovy.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<compilerId>groovy-eclipse-compiler</compilerId>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-compiler</artifactId>
<version>2.8.0-01</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-batch</artifactId>
<version>2.1.8-01</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
是的,你的 IDE 支持 Groovy 后,你只要加上以上的配置到pom.xml
中就行了。
我自己也在网上搜了很多教程,但是一直会有问题。后来仔细看了官网的教程,原来 Groovy 有过打升级,所以很多配置都不一样了。
官网教程:
http://groovy.codehaus.org/Groovy-Eclipse+compiler+plugin+for+Maven
开始使用 Groovy
好了,现在要考试写 Groovy 代码了。
你可以在你的 main 和 test 目录下新增一个 groovy
目录,和 java
平级即可。
(备注:最新版的官方教程建议你直接把文件放在java
目录中,放groovy
中也可以,但是需要配置一下插件。)
这时候,IDE 可以智能提示相关的代码,maven install
的时候也会编译这个文件夹下的内容。
具体的语法就是另一个话题了,大家可以看看 Groovy 相关的书籍,相信很快就可以入门了。
本作品由 Dozer 创作,采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。