Gradle用户指南

  1. 下载安装gradle 2.1
    1. 安装先决条件:gradle安装须要1.6或者更高版本的jdk(jre)(可使用java –version 验证),gradle自带groove lib库,因此没必要安装groove,任何已安装groove都将被忽略。Gradle使用path路径下的jdk,固然,你也能够设置JAVA_HOME指向你的jdk安装路径。
    2. Gradle发行版是一个zip压缩文件,完整的发行版包括:
      1. 二进制文件
      2. 用户指南(htmlpdf
      3. Dsl参考指南
      4. API文档(Javadoc和Groovydoc)。
      5. 大量示例,包括用户指南中引用的例子,一些完善的和更复杂的构建,你能够用来搭建本身的构建。
    3. 建立新的环境变量GRADLE_HOME,值为gradle的安装目录,另需 /bin添加到path变量中。
    4. 你能够运行gradle –v来验证安装,输出显示gradle版本和本地环境变量配置(groove版本,jvm版本等等)。
    5. 你能够经过设置jvm环境变量来运行gradle。固然,你也可使用GRADLE_OPTS JAVA_OPTS ,或二者兼而有之。JAVA_OPTS环境变量按照惯例是许多java应用程序共享的。一个典型用例是设置HTTP代理JAVA_OPTSGRADLE_OPTS内存选项。这些变量也能够设置gradlegradlew脚本的开始选项。

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

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

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

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

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

    2. Hello World

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

      让咱们来尝试建立一个构建脚本:build.gradle 闭包

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

      一个构建脚本的执行: ide

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

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

      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构建脚本作更多的操做,  使用AntGradle

      稍后,你将看到,这些方法能够共享过项目中子项目的构建。若是你的构建逻辑很是复杂,gradle为你提供其余很方便的方式来组织他。 Chapter 17, Using Ant from Gradle

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

    

这至关于运行clean,run。在多项目中构建的每个子项目均可以有特定的默认任务,若是一个子项目没有指定默认任务,则使用父项目的默认任务(若是存在的话)。

配置DAG

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

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

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

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

相关文章
相关标签/搜索