Gradle用户指南

  1. 下载安装gradle 2.1

    1. 下载地址:http://www.gradle.org/learn
    2. 安装先决条件:gradle安装需要1.6或者更高版本的jdk(jre)(可以使用java –version 验证),gradle自带groove lib库,所以不必安装groove,任何已安装groove都将被忽略。Gradle使用path路径下的jdk,当然,你也可以设置JAVA_HOME指向你的jdk安装路径。
    3. Gradle发行版是一个zip压缩文件,完整的发行版包括:

      1. 二进制文件
      2. 用户指南(html和pdf)
      3. Dsl参考指南
      4. API文档(Javadoc和Groovydoc)。
      5. 大量示例,包括用户指南中引用的例子,一些完善的和更复杂的构建,你可以用来搭建自己的构建。
    4. 创建新的环境变量GRADLE_HOME,值为gradle的安装目录,另需
      把/bin添加到path变量中。
    5. 你可以运行gradle –v来验证安装,输出显示gradle版本和本地环境变量配置(groove版本,jvm版本等等)。
    6. 你可以通过设置jvm环境变量来运行gradle。当然,你也可以使用GRADLE_OPTS 或 JAVA_OPTS ,或两者兼而有之。JAVA_OPTS环境变量按照惯例是许多java应用程序共享的。一个典型用例是设置HTTP代理JAVA_OPTS和GRADLE_OPTS内存选项。这些变量也可以设置gradle和gradlew脚本的开始选项。

    注:这些不能用来设置命令行jvm选项。

  2. 构建脚本基础

    1. Gradle中的一切都简历在2个基础之上:项目projects和任务task

      每个gradle构建都由一个或多个项目组成。一个项目代表什么取决于你通过gradle怎么做。例如:一个项目可能代表一个jar lib库或者一个web应用程序;它也可能代表一个从其他项目jars提取出的zip分布;一个项目并一定代表一个构建;它可能代表一件事情要做;比如,部署你的应用程序到工作台或者生产环境中;如果这看起来有点模糊,不要担心,Gradle build-by-convention支持为一个项目添加更具体的定义。

      每个项目都有一个或多个tasks任务组成。一个任务代表一个一些构建工作的原子块。这可能是编译一些类,创建一个JAR,生成javadoc, 或发布存档到仓库。

      现在,我们将看看定义一些简单的任务在一个构建一个项目。 后面的章节将看 处理多个项目和更多关于工作项目和任务。

    2. Hello World

      使用gradle命令运行gradle构建。这个命令会在当前目录查找build.gradle文件,我们通常把这个文件叫做构建脚本。虽然严格来说它是一个构建配置脚本,正如我们稍后所看到的那样,这个脚本定义一个项目及其文档。

      让我们来尝试创建一个构建脚本:build.gradle

      在一个命令行shell,移动到build.gradle所在目录并执行构建脚本:gradle -q hello

      一个构建脚本的执行:

      有一个速记方法来定义一个任务,例如上面的hello,这个速记方法看起来更简洁:

      上面定义一个名叫 hello的任务闭包执行脚本。我们将在整个用户指南中使用这种任务定义风格。

      Gradle构建脚本给了你groovy的全部威力。作为开胃菜,先看看这个:

      或者

      如下

      如你所想,你可以声明依赖于其他任务的任务

      插入:命令行创建文件 echo.>build.gradle

      问题:怎么在命令行输出中文

      添加一个依赖项,这个依赖不是必须存在的(不是必须定义在依赖前*)

      任务taskx对tasky的依赖声明在tasky的定义之前,这对多项目构建非常重要。任务依赖关系在15.4添加任务依赖项中会有更详细的探讨。

      注意:你不能使用快捷键符号指向未定义的任务。

      Groovy不但能定义一个任务做什么,例如,它还能动态创建任务。

      一旦任务创建,他们就可以通过api进行访问。例如,用这个特性你可以在运行时为一个任务动态的添加依赖关系。Ant并不支持这一点。

      或者,你也可以添加行为到现有任务中

      注:task任务名不区分大小写(执行的时候)。

      DoLast和doFirst可以多次被调用执行,他们在任务动作列表的开始或结束添加一个动作,他们在动作action列表中顺序执行。<<操作符是doLast的一个别名。

      正如你所注意的,在例子中有一个很方便的符号来访问已存在的任务。每一个任务都可以看作是构建脚本的一个属性。

      这使代码非常有可读性,特别是使用插件提供的任务时,比如compile编译任务。

      你可以添加自己的属性到一个任务。例如:添加一个属性名myProperty,集ext.myProperty的默认值,完成后,这个属性就可以像预定义任务一样读取和设置值。

      注:这里的ext应是gradle自带的,去掉后找不到指定属性。

      额外的属性并不局限于任务,你可以阅读更多关于他们的部分:13.4.2"额外属性" 。

      Ant任务是gradle的一等公民。它依靠groovy对ant任务提供优秀的jicheng 。通过gradle使用比原本的build.xml更强大和方便。从下面的例子中,你可以学习到如何执行ant任务和访问ant属性。

      注:没做过ant,略过

      你可以对ant构建脚本做更多的操作,??使用Ant从Gradle

      稍后,你将看到,这些方法可以共享过项目中子项目的构建。如果你的构建逻辑非常复杂,gradle为你提供其他很方便的方式来组织他。?Chapter?17,?Using Ant from Gradle

????Gradle允许定义一个或多个默认的构建任务。

????

这相当于运行clean,run。在多项目中构建的每一个子项目都可以有特定的默认任务,如果一个子项目没有指定默认任务,则使用父项目的默认任务(如果存在的话)。

配置DAG

我们将在56章建立生命周期中详细描述,它有配置阶段和执行阶段。配置阶段后,gradle应该知道所有被执行的任务。Gradle提供一个钩子使用这些信息。一个用例将检查要发布的任务在执行任务中间。基于此,你可以给变量赋予不同的值。

在下面的例子中,执行分配和发布任务的结果变量是不同的值。

重要的是,whenReady影响任务的发布在发布任务命令执行前。这些工作使得发布任务不是首要任务(任务传递给gradle命令)。

在这一章,我们只是先看一下任务,这并不是对任务介绍的结束,如果你想进入更多的细节,第15章, 更多的任务 。

时间: 2024-12-16 20:15:54

Gradle用户指南的相关文章

Gradle用户指南(章10:Web应用程序快速入门)

Gradle用户指南(章10:Web应用程序快速入门) 本章正在完善中..... 本章介绍gradle对web应用程序的支持.Gradle为web应用程序开发提供了两个插件:War插件和Jetty插件.War插件扩展了java插件并且能为你的项目构建一个war包.Jetty插件扩展了War插件并且提供了发布你的web项目到Jetty容器中的功能. 构建一个War文件 构建War文件,你需要在项目中添加War插件. 注意:你可以在gradle发布库和源文件的samples/webApplicati

Gradle用户指南(章9:Groovy快速入门)

Gradle用户指南(章9:Groovy快速入门) 你可以使用groovy插件来构建groovy项目.这个插件继承了java插件的功能,且扩展了groovy编译.你的项目可以包含groovy代码.java代码或者两者混合.在其他方面,groovy项目与java项目是一致的,就像我们在章7:java快速入门中所看到的那样. 一个简单的groovy项目 让我们来看一个示例.使用groovy插件,需要添加下面的代码得到你的构建文件中. 注意:示例代码在gradle发布的源文件包的路径samples/g

【Gradle用户指南】Gradle特点介绍

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 本篇文章翻译自<Gradle User Guide>,若想查看原文,请戳http://www.gradle.org/  . 1.介绍 我们想介绍Gradle给你,Gradle是一个构建系统,我们认为这是在Java世界里的一个飞跃式的发展. Gradle提供给我们: (1)一个像Ant一样非常灵活的通用构建工具 (2)一种可切换的,像Maven一样基于约定的构建框架,约定优于配置 (3)强大的对于多工程构

Gradle用户指南之初学者教程(三)

写在前面的话: 博主最近在学习Android Studio相关的东西.Gradle相对于我这个从Eclipse转过来的Android开发者,也算是一个全新的事物.但它却承担着Android构建系统中相当重要的一环.本着与人方便,自己方便的精神,觉得有必要翻译一下<Gradle User Guide>中的Tutorials相关部分.由于英语水平相当有限,请大家多多指教. 文章地址:http://blog.csdn.net/mikulee/article/details/45478177 英文原文

Gradle用户指南翻译链接

用户指南翻译: 第1-10章的翻译,不含第9章,http://pkaq.github.io/gradledoc/docs/userguide/userguide.html 第9,11-39章的翻译链接:http://blog.csdn.net/maosidiaoxian/ 最好的一本介绍Gradle的书籍:Gradle in Action, 2014年出版. 其他参考资料: [1] http://gradle.org/books/ [2] https://docs.gradle.org/2.6/

Gradle用户指南(章8:依赖关系管理基础)

章8:依赖关系管理基础 本章将介绍一些gradle依赖关系管理的基础 什么是依赖关系管理? 简略的说,依赖管理是由两部分组成的.首先,gradle需要知道你要构建或者运行的项目,以便找到它们.我们将这些导入的文件视为项目的依赖.第二,gradle需要构建或者打包你的项目产品.我们将这些导出的文件视为项目的发布.下面,让我们在细节上更多的了解这两个方面. 大部分项目都不是完全彻底的独立的.它们需要其他项目的构建文件,以便编译.测试等等.例如,为了在我的项目中使用Hibernate,当编译我的源文件

Gradle用户指南(3)-构建Java项目

1.构建基本的Java项目 为了使用 Java 插件,添加下面代码到构建文件: build.gradle apply plugin: 'java' 这个就是 定义一个 Java 项目的全部.它会将 Java 插件应用到项目中,并且添加很多 task. Gradle 会在 src/main/java 目录下寻找产品代码,在 src/test/java 寻找测试代码 . 另外在 src/main/resources 包含了资源的 JAR 文件, src/test/resources 包含了运行测试.

Gradle用户指南(章7:java插件)

Java插件 如我们所见,gradle是一个通用的构建工具.它可以构建你关心并实现的构建脚本.它是开箱即用的,然而,它不会构建任何东西除非你在你的构建脚本中添加代码. 大多数java项目都有非常相似的基础操作:编译java源文件,运行单元测试,和创建包含类文件的jar包.如果你不想为每个项目添加这些操作代码,那是非常好的.Gradle用插件解决这个问题.这个插件通常通过以某种方式配置你的项目来扩展它,通过添加一系列预配置的任务来做一些有用的东西.Gradle附带大量的附件,当然,你也可以编写自己

Gradle用户指南(中文版)

http://rinvay.github.io/android/2015/03/26/Gradle-Plugin-User-Guide(Translation)/