国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > php教程 > Gradle 1.12用户指南翻译――第二十四章. Groovy 插件

Gradle 1.12用户指南翻译――第二十四章. Groovy 插件

来源:程序员人生   发布时间:2015-07-01 08:37:59 阅读次数:2899次

其他章节的翻译请参见:

http://blog.csdn.net/column/details/gradle-translation.html

翻译项目请关注Github上的地址:

https://github.com/msdx/gradledoc/tree/1.12。

直接阅读双语版的文档请访问:

http://gradledoc.qiniudn.com/1.12/userguide/userguide.html。

另外,Android 手机用户可通过我写的1个程序阅读文档,带缓存功能的,兼容2.1以上(5.0没试过)的Android系统,地址以下:

http://www.wandoujia.com/apps/com.githang.gradledoc

翻译不容易,转载请注明本文在CSDN博客上的出处:

http://blog.csdn.net/maosidiaoxian/article/details/45390357

关于我对Gradle的翻译,以Github上的项目及http://gradledoc.qiniudn.com 上的文档为准。如有发现翻译有误的地方,将首先在以上两个地方更新。因时间精力问题,博客中发表的译文基本不会同步修改。


第2104章. Groovy 插件

Groovy 的插件继承自 Java 插件并添加了对 Groovy 项目的支持。它可以处理 Groovy 代码,和混合的 Groovy 和 Java 代码,乃至是纯 Java 代码(虽然我们不1定推荐使用)。该插件支持联合编译,可以任意地混合及匹配Groovy 和 Java 代码各自的依赖。例如,1个 Groovy 类可以继承自1个 Java 类,而这个 Java 类也能够继承自1个 Groovy 类。这样1来,我们就可以够在项目中使用最合适的语言,并且在有需要的情况下用其他的语言重写其中的任何类。

24.1. 用法

要使用 Groovy 的插件,请在构建脚本中包括以下语句:

示例 24.1. 使用 Groovy 插件

build.gradle

apply plugin: 'groovy'

24.2. 任务

Groovy 的插件向project 中添加了以下任务。

表 24.1. Groovy 插件 - 任务

任务名称 依赖于 类型 描写
compileGroovy compileJava GroovyCompile 编译production 的 Groovy 源文件。
compileTestGroovy compileTestJava GroovyCompile 编译test 的 Groovy 的源文件。
compileSourceSetGroovy compileSourceSetJava 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 插件 - tasks

24.3. 项目布局

Groovy 的插件会假定项目的布局如表 24.3,“Groovy 插件 - 项目布局”中所示。所有 Groovy 的源目录都可以包括 GroovyJava 代码。Java 源目录只能包括 Java 源代码。[11]这些目录不1定得存在或是里面包括有甚么内容;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 源代码。
src/sourceSet/java 给定的源集的Java源代码
src/sourceSet/resources 给定的源集的资源
src/sourceSet/groovy 给定的source set 的 Groovy 源代码。另外可能包括联合编译的 Java 源代码。

24.3.1. 更改项目布局

和 Java 插件1样,Groovy 插件允许把 Groovy 的production 和test 的源文件配置为自定义的位置。

示例 24.2. 自定义 Groovy 自定义源文件布局

build.gradle

sourceSets { main { groovy { srcDirs = ['src/groovy'] } } test { groovy { srcDirs = ['test/groovy'] } } }

24.4. 依赖管理

由于 Gradle 的构建语言基于 Groovy 的,且部份的 Groovy 使用 Groovy 实现,因此 Gradle 已带有了1个 Groovy 库 (截至 Gradle 1.6所带的 Groovy 库的版本是 1.8.6)。但是,Groovy 项目需要显式地声明1个 Groovy 依赖。这个依赖会在编译和运行的类路径时用到。它还将用于分别获得Groovy 编译器及 Groovydoc 工具。

如果 Groovy 用于production 代码,Groovy 依赖应当添加到compile配置中:

示例 24.3. Groovy 的依赖配置

build.gradle

repositories { mavenCentral() } dependencies { compile 'org.codehaus.groovy:groovy-all:2.2.0' }

如果 Groovy 仅用于测试代码,Groovy 的依赖应当被添加到testCompile配置中:

示例 24.4. 配置Groovy 测试依赖

build.gradle

dependencies { testCompile "org.codehaus.groovy:groovy-all:2.2.0" }

如果要使用 Gradle 所带的 Groovy 库,请声明localGroovy()依赖。注意,不同 Gradle 版本附带的 Groovy 版本不同;因此,声明1个固定的 Groovy 依赖要比使用localGroovy()更安全1些。

示例 24.5. 配置捆绑的 Groovy 依赖

build.gradle

dependencies { compile localGroovy() }

Groovy 库不1定得从远程仓库中获得。它也能够获得自本地中可能检入版本控制的lib目录:

示例 24.6. 配置Groovy 文件依赖

build.gradle

repositories { flatDir { dirs 'lib' } } dependencies { compile module('org.codehaus.groovy:groovy:1.6.0') { dependency('asm:asm-all:2.2.3') dependency('antlr:antlr:2.7.7') dependency('commons-cli:commons-cli:1.2') module('org.apache.ant:ant:1.9.3') { dependencies('org.apache.ant:ant-junit:1.9.3@jar', 'org.apache.ant:ant-launcher:1.9.3') } } }

24.5. groovyClasspath 的自动配置

GroovyCompileGroovydoc tasks 会以两种方式使用 Groovy: 在它们的classpath和它们的groovyClasspath上。前者用于在源代码中查找类的援用,通常会包括 Groovy 库和其他库。后者用来分别加载和履行 Groovy 编译器和 Groovydoc 工具,并且应当只包括 Groovy 库及其依赖项。

除非显式配置了1个 task 的groovyClasspath ,否则 Groovy(基础)插件会尝试推断该 task 的classpath。以以下方式进行:

  • 如果在在classpath中找到groovy-all(-indy) Jar,相同的 Jar 将添加到groovyClasspath中。
  • 如果在 生活不易,码农辛苦
    如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
    程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生