第二十三章. Java 插件
Java 插件向一个项目添加了 Java 编译、 测试和 bundling 的能力。它是很多其他 Gradle 插件的基础服务。
23.1. 用法
要使用 Java 插件,请在构建脚本中加入:
示例 23.1. 使用 Java 插件
build.gradle
apply plugin: 'java'
23.2 源集
Java 插件引入了一个源集的概念。一个源集只是一组用于编译并一起执行的源文件。这些源文件可能包括 Java 源代码文件和资源文件。其他有一些插件添加了在源集...
分类:
编程语言 时间:
2015-04-29 09:55:46
阅读次数:
285
第二十一章. Gradle 插件
Gradle 在它的核心中有意地提供了一些小但有用的功能,用于在真实世界中的自动化。所有有用的功能,例如以能够编译 Java 代码为例,都是通过插件进行添加的。插件添加了新任务 (例如JavaCompile),域对象 (例如SourceSet),约定(例如主要的 Java 源代码是位于src/main/java),以及扩展的核心对象和其他插件的对象。
在这一章中,我们将讨论如何使用插件以及术语和插件相关的概念。
21.1. 应用插件
插件都认为是被应用,通过Projec...
分类:
其他好文 时间:
2014-12-17 09:49:18
阅读次数:
223
第二十章. 构建环境
20.1. 通过 gradle.properties 配置构建环境
Gradle 提供了几个选项,可以很容易地配置将用于执行您的构建的 Java 进程。当可以通过 GRADLE_OPTS 或 JAVA_OPTS 在你的本地环境中配置这些选项时,如果某些设置如 JVM 内存设置, Java home, 守护进程的开/关,它们可以和你的项目在你的版本控制系统中被版本化的话,将会更有用,这样整个团队就可以使用一致的环境了。在你的构建当中,建立一致的环境,就和把这些配置放进 gradle.pr...
分类:
其他好文 时间:
2014-11-25 09:20:10
阅读次数:
234
19.1. 走进守护进程
Gradle 守护进程(有时也称为构建守护进程) 的目的是改善 Gradle 的启动和执行时间。
我们准备了几个守护进程非常有用的用例。对于一些工作流,用户会多次调用 Gradle,以执行少量的相对快速的任务。举个例子:
当使用测试驱动开发时,单元测试会被执行多次。
当开发一个 web 应用程序中,应用程序会被组装多次。
当发现构建能做什么,在gradle tasks在哪里会执行多次。
对以上各种工作流来说,让调用 Gradle 的启动成本尽可能小会很重要。
此外,如果可以相...
分类:
系统相关 时间:
2014-11-21 09:13:28
阅读次数:
243
日志是构建工具的主要界面。如果日志太多,真正的警告和问题容易被隐藏。另一方面,如果出了错,你需要找出相关的信息。Gradle 定义了6个日志级别,如表 18.1,“日志级别”所示。除了那些您通过可能会看到的日志级别之外,有两个 Gradle 特定日志级别。这两个级别分别是 QUIET 和 LIFECYCLE. 默认使用后面的这个日志级别,用于报告构建进度。
表 18.1. 日志级别
Level 用于
ERROR 错误消息
QUIET 重要的信息消息
WARNING 警告消息
LIFECYCLE 进度信息...
分类:
其他好文 时间:
2014-11-18 10:24:14
阅读次数:
287
Gradle 提供了对 Ant 的优秀集成您可以在你的 Gradle 构建中,使用单独的 Ant 任务或整个 Ant 构建。事实上,你会发现在 Gradle 中使用 Ant 任务比使用 Ant 的XML 格式更容易也更强大。你甚至可以只把 Gradle 当作一个强大的 Ant 任务脚本的工具。
Ant 可以分为两层。第一层是 Ant 的语言。它提供了用于build.xml,处理的目标,特殊的构造方法比如宏,还有其他等等的语法。换句话说,除了 Ant 任务和类型之外全部都有。Gradle 理解这种语言,并允...
分类:
其他好文 时间:
2014-11-17 09:14:52
阅读次数:
187
第十六章. 使用文件
大多数构建工作都要使用到文件。Gradle 添加了一些概念和 API 来帮助您实现这一目标。
16.1. 定位文件
你可以使用Project.file()方法来找到一个相对于项目目录的文件 。
您可以把任何对象传递给file()方法,而它将尝试将其转换为一个绝对路径的File对象。通常情况下,你会传给它一个String或File的实例。而所提供的这个对象的tostring()方法的值会作为文件路径。如果这个路径是一个绝对路径,它会用于构构一个File实例。否则,会通过先计算所提供的...
分类:
其他好文 时间:
2014-11-14 09:17:56
阅读次数:
296
第十五章. 任务详述
在入门教程 (第 6 章,构建脚本基础) 中,你已经学习了如何创建简单的任务。之后您还学习了如何将其他行为添加到这些任务中。并且你已经学会了如何创建任务之间的依赖。这都是简单的任务。但 Gradle 让任务的概念更深远。Gradle 支持增强的任务,也就是,有自己的属性和方法的任务。这是真正的与你所使用的 Ant 目标(target)的不同之处。这种增强的任务可以由你提供,或由 Gradle 提供。
15.1. 定义任务
在第 6 章,构建脚本基础 中我们已经看到如何通过关键字这种风...
分类:
其他好文 时间:
2014-11-12 09:20:38
阅读次数:
286
第十四章. 教程 - 杂七杂八
14.1. 创建目录
有一个常见的情况是,多个任务都依赖于某个目录的存在。当然,你可以在这些任务的开始加入mkdir来解决这个问题。但这是种臃肿的解决方法。这里有一个更好的解决方案 (仅适用于这些需要这个目录的任务有着dependsOn的关系的情况):
14.2. Gradle 属性和系统属性
Gradle 提供了许多方式将属性添加到您的构建中。 从Gradle 启动的 JVM,你可以使用-D命令行选项向它传入一个系统属性。 Gradle命令的-D选项和java命令的-D选...
分类:
其他好文 时间:
2014-11-11 09:22:40
阅读次数:
237
第十三章 编写构建脚本
这一章着眼于一些编写构建脚本的详细信息。
13.1. Gradle 构建语言
Gradle 提供一种领域特定语言或者说是 DSL,来描述构建。这种构建语言基于 Groovy 中,并进行了一些补充,使其易于描述构建。
13.2. Project API
在第 7 章, Java 快速入门的教程中,我们使用了 apply ()方法。这方法从何而来?我们之前说在 Gradle 中构建脚本定义了一个项目(project)。在构建的每一个项目中,Gradle 创建了一个Project类型的...
分类:
其他好文 时间:
2014-11-10 10:00:42
阅读次数:
217