本文整理自网络,侵删。
Groovy 插件
Groovy 的插件继承自 Java 插件并添加了对 Groovy 项目的支持。它可以处理 Groovy 代码,以及混合的 Groovy 和 Java 代码,甚至是纯 Java 代码(尽管我们不一定推荐使用)。该插件支持联合编译,可以任意地混合及匹配 Groovy 和 Java 代码各自的依赖。例如,一个 Groovy 类可以继承自一个 Java 类,而这个 Java 类也可以继承自一个 Groovy 类。这样一来,我们就能够在项目中使用最适合的语言,并且在有需要的情况下用其他的语言重写其中的任何类。
用法
要使用 Groovy 的插件,请在构建脚本中包含以下语句:
使用 Groovy 插件
build.gradle
apply plugin: 'groovy'
任务
Groovy 的插件向 project 中添加了以下任务。
表 24.1. Groovy 插件 - 任务
任务名称 | 依赖于 | 类型 | 描述 |
compileGroovy
|
compileJava
|
GroovyCompile | 编译production 的 Groovy 源文件。 |
compileTestGroovy
|
compileTestJava
|
GroovyCompile | 编译test 的 Groovy 的源文件。 |
SourceSet Groovy |
SourceSet Java |
GroovyCompile | 编译给定的 source set 里的 Groovy 源文件。 |
groovydoc
|
- | Groovydoc | 为 production 里的 Groovy 源文件生成 API 文档。 |
Groovy 的插件向 Java 插件所加入的 tasks 添加了以下的依赖。
表 24.2. Groovy 插件 - 额外的 task 依赖
任务名称 | 依赖于 |
classes | compileGroovy |
testClasses | compileTestGroovy |
sourceSetClasses | compileSourceSetGroovy |
图 24.1. Groovy 插件 - tasks
项目布局
Groovy 的插件会假定项目的布局如表 24.3,“Groovy 插件 - 项目布局”中所示。所有 Groovy 的源目录都可以包含 Groovy 和 Java 代码。Java 源目录只能包含 Java 源代码。这些目录不一定得存在或是里面包含有什么内容;Groovy 的插件只会进行编译,而不管它发现什么。
表 24.3. Groovy 插件 - 项目布局
目录 | 意义 |
src/main/java
|
产品的Java源代码 |
src/main/resources
|
产品的资源 |
src/main/groovy
|
Production Groovy 源代码。此外可能包含联合编译的 Java 源代码。 |
src/test/java
|
Java 测试源代码 |
src/test/resources
|
测试资源 |
src/test/groovy
|
Test Groovy 源代码。此外可能包含联合编译的 Java 源代码。 |
sourceSet /java |
给定的源集的Java源代码 |
sourceSet /resources |
给定的源集的资源 |
sourceSet /groovy |
给定的source set 的 Groovy 源代码。此外可能包含联合编译的 Java 源代码。 |
更改项目布局
和 Java 插件一样,Groovy 插件允许把 Groovy 的 production 和 test 的源文件配置为自定义的位置。
自定义 Groovy 自定义源文件布局
build.gradle
sourceSets {
main {
groovy {
srcDirs = ['src/groovy']
}
}
test {
groovy {
srcDirs = ['test/groovy']
}
}
}
依赖管理
由于 Gradle 的构建语言基于 Groovy 的,且部分的 Groovy 使用 Groovy 实现,因此 Gradle 已经带有了一个 Groovy 库 (截至 Gradle 1.6 所带的 Groovy 库的版本是 1.8.6)。然而,Groovy 项目需要显式地声明一个 Groovy 依赖。这个依赖会在编译和运行的类路径时用到。它还将用于分别获取 Groovy 编译器及 Groovydoc 工具。
如果 Groovy 用于 production 代码,Groovy 依赖应该添加到 compile 配置中:
Groovy 的依赖配置
build.gradle
repositories {
mavenCentral()
}
dependencies {
compile 'org.codehaus.groovy:groovy-all:2.2.0'
}
如果 Groovy 仅用于测试代码,Groovy 的依赖应该被添加到 testCompile 配置中:
配置 Groovy 测试依赖
相关阅读 >>
更多相关阅读请进入《Gradle》频道 >>