Gradle 教程:第一部分,安装【翻译】

 

原文地址:http://rominirani.com/2014/07/28/gradle-tutorial-part-1-installation-setup/

在这篇教程里,我们将主要讲解如何在我们自己的系统上安装、配置、原始版本的Gradle,并学习一些基本的Gradle命令行!Android Studio 本身集成了一个内部版本的Gradle,在安装Android Studio的时候,就自动给安装上了,这对于我们这样的小白对Gradle的理解没有帮助意义,所以我们单独将Gradle原始版本安装并配置独立出来便于我们的理解Android Studio里面的Gradle。

在开始之前,如果你想知道为什么Gradle对于编译来说是一个好工具,我建议你读一下这篇文章,虽然你不读也能读懂下面的内容,但是读一下或许能帮助打开你的思想,让你理解为什么很多公司和开发人员都在研究并应用Gradle!

下面的系列步骤将教你如何在你自己的电脑上配置Gradle!Gradle需要JDK,所以我假设你就是一个java开发者,并知道如何在你电脑上安装 JAVA JDK!

下载Gradle

在写作的时候,Gradle 已经发布到2.0,可以在这里下载

先下载那个gradle-2.0-all.zip文件到你的电脑上,并解压,我将其解压到我的电脑的D:\Program Files\gradle-2.0-all。解压后有这些文件

你可能会问:为什么要安装一个原始版本的Gradle?Android Studio 本身只是简单的集成Gradle,当你使用Android Studio 在创建APP的时候,Android Studio 会调用Gradle的命令来做一些事情,而Android Studio 是如何在做这些事情的呢?如果你安装这个单独版本的Gradle,并使用其命令行来完成,你就很容易的知道Android Studio 在如何做了,否则的话,你会误以为Android Studio如何使用Gradle就是在玩魔术。

设置环境变量

\bin 文件夹包含了gradle脚本文件(unix和windows 都有),如果你要使用这个脚本,你就需要如下步骤:

1. 创建一个环境变量 GRADLE_HOME,并指向你的Grdle的安装路径,在我的电脑,这样添加:

2. 添加 %GRADLE_HOME%\bin 到你的PATH 环境变量,这样你就可以在CMD中任意使用gradle命令行了!

检查配置

为了检查刚才所设置的变量是否成功,你打开CMD,并执行如下命令:

gradle –v

如果配置成功就会有如下结果:

如果你没有看到这样的内容,那就检查一下路径是否正确。

关于Groovy

只要有Gradle就应该有Groovy,离开Groovy讨论Gradle是不完整的!Groovy是一个在JVM上非常流行并且强大的语言。

Gradle使用最受欢迎的特点有:

简洁

灵活

可以照你想象的方式自由配置

Groovy在实现上面的这些特性时扮演了非常重要的角色,基本就是Groovy提供这些功能的实现。Ant与Maven在编译时使用XML文件,而Groovy语言比XML文件要灵活强大很多,因为它不仅让文件在内容上看起来更加简洁,并且它提供修改或者制定标签的强大的可编程能力,也支持闭包等最新编程语言才具有的高级特性,并且可以实时编译!

那么问题就来了,你可能就会问:我需要去学习Groovy吗?

我试着回答你,不需要!除非你真的需要不按照约定去做一些你自己需要的需求,那么你可能就需要去学习Groovy,因为Gradle的弹性与灵活性就表现在这里,你可以照你想的方式来做一切。但是对于大多数情况,你只需要使用各种build.gradle模板(包含了 Groovy DSL),根本就不需要学习Groovy!

所以,要理解Gradle不需要你去好好的学习Groovy,当然如果你想理解Groovy的全部强大功能,你也可以自己去学习。这肯定会是有好处的!

Groovy在默认安装Gradle的时候,就已经安装了一个内部版本了,所以你不需要再去下一个独立版本的Groovy!

基本Gradle命令

我们还没有写任何源代码或者编译文件(Gradle),所以一会我们就来写。现在先来试试下面这个命令行:

gradle -q help

这个命令用来展示Gradle的帮助信息

-q:用来表示dos窗口中退出信息 ,这个命令在你只需要看一些输出的时候非常有用

gradle –q tesks

这个展示一个你当前可以使用的任务列表

gradle properties

这个将展示一个属性列表,这些属性gradle已经预定配置好的,你也可以修改大多数的实行在你自己的编译文件里。这些属性给你一个暗示:Gradle在执行你的任务之前为你的项目配置会做一大堆非常繁重的工作!

我们还没有编译自己的JAVA项目,这个会在以后的系列来做,我们先要理解Groovy是如何给Gradle提供了那一整套强大的编程能力!

我们先讨论一下build.gradle文件。这个标准的文件名就是我们自己的编译文件。这个文件包含了所有你需要Gradle去执行的命令。在完成了整个教程系列之后,我们就能够非常有效的去使用这个文件去创建或者使用各种顺序的插件、任务来完成我们自己的编译、测试、运行java程序的工作!

现在,你来跟着我做:

选择一个文件夹,在里面创建一个文件build.gradle

用记事本或者其他编辑器,将下面的内容添加的build.gradle文件里

task compileTask << {

System.out.println “compiling…”

}

现在打开CMD,并定位到你所创建的文件夹(使用 cd命令,你应该会吧),执行下面的代码

gradle –q tasks

这个就会输出一个可用的各种任务(tasks)列表,并且你会注意到在输出部分,与标准任务分开的,会有一个我们自己的创建的那个任务 compileTask:

我们的编译文件(build.gradle)就是一些列的任务(task)的组合,这里就带出了第一个的概念任务(task),任务指定了gradle编译系统要为我们执行的代码。

当前我们所指定的项目被称作compileTask,就如你所看到的,我们使用了Groovy代码来定义这个任务,这个任务所要做的事情,就是简单的执行一个 System.out.println。怎么样,现在能体会Groovy是如何强大了吧!

现在,我们要如何使用命令执行这个compileTask呢?

在做这个之前,我们还有一个知识点需要理解。当我们执行一个 gradle命令时,gradle编译系统就会在当前目录寻找文件名为build.gradle的文件。如果找到了,就使用这个文件。在我们上面的例子中,gradle编译系统找到了这个文件,所以gradle编译系统就将决定这个文件里是什么样的任务,并将其任务加到gradle编译系统的可执行任务里表里面去。

那么,我们执行即不带任何参数的gradle的命令,也不指定任何要被执行的任务时,会发生什么呢?现在试试,执行吧:

gradle

你应该会看到如下的输出:

这个输出很明显的告诉你,当你执行gradle的时候,你需要指定一个任务名。比如:gradle <task>。那么就让我们就试试使用我们自己的任务会是什么效果:

gradle –q compileTask

就有一个输出消息

现在让我们增加build.gradle文件一些其他的任务,比如:

task compileTask << {

System.out.println “compiling…”

}

task buildTask <<{

System.out.println “building…”

}

现在执行下面的命令:

gradle –q tasks

你应该会看到两个列表都在otherTasks里面:

现在你就可以执行

gradle compileTask

或者

gradle buildTask

那么如果我们想创建一个默认被执行的任务,可以让我不需要制定任务名要如何做呢?

要做到上面的需求,修改build.gradle文件

defaultTasks 'buildTask'

task complieTask << {     System.out.println "compling..." } task buildTask <<{     System.out.println "building..." }

现在,如果我们简单的执行gradle -q,就会有如下输出:

最后一部分要讨论的,就是任务之间的相互依赖。这个问题是这样的情况:如果buildTask执行了,那么compileTask一定要在buildTask之前执行,这样就是说buildTask依赖于compileTask。要如此做,我们需要修改build.gradle文件如下:

defaultTasks 'buildTask'

task compileTask << {     System.out.println "compling..." } task buildTask(dependsOn:compileTask) <<{     System.out.println "building..." }

你再次执行gradle -q,就应该有如下输出:

我们这篇文章里所讨论的gradle只有一些非常基本的功能。把你的编译文件想象成一些列的需要被执行的任务。如果你是一个java程序猿,并且对编译处理有一些经验(ant,Maven),那么你应该知道,要编译任务东西,我们都要做编译,构建,跑测试用例,打包等等等等,但是在Gradle里面通通没有这些了,只有各种任务。

通过使用的Gradle规定的约定和插件程序,我们并不需要手动去写任何任务。就能够自己定义一些列的步骤来构建文明之间的项目!

目前有的一些插件程序有 java plugin ,war plugin,appengine plugin, android plugin等等,那些已经定义一些列你可以使用的任务,我们也将在接下来的课程里看到更多!

转:https://www.cnblogs.com/pavkoo/p/4164931.html

Gradle 梳理:安装、入门使用方法的更多相关文章

  1. 二进制程序分析工具Pin在Windows系统中的安装和使用方法

    这篇日志其实很弱智,也是因为换了新电脑,实验环境不全(当然,做这个实验我是在虚拟机里,因为接下来想拿些恶意代码的数据),所以这里记录一下在Windows下怎么安装和使用Pin这个程序分析领域最常用的工 ...

  2. Express安装入门与模版引擎ejs

    Express安装入门与模版引擎ejs 目录 前言 Express简介和安装 运行第一个基于express框架的Web 模版引擎 ejs express项目结构 express项目分析 app.set ...

  3. Step by Step 真正从零开始,TensorFlow详细安装入门图文教程!帮你完成那个最难的从0到1

    摘要: Step by Step 真正从零开始,TensorFlow详细安装入门图文教程!帮你完成那个最难的从0到1 安装遇到问题请文末留言. 悦动智能公众号:aibbtcom AI这个概念好像突然就 ...

  4. 个人用户永久免费,可自动升级版Excel插件,使用VSTO开发,Excel催化剂安装过程详解及安装失败解决方法

    因Excel催化剂用了VSTO的开发技术,并且为了最好的用户体验,用了Clickonce的布署方式(无需人工干预自动更新,让用户使用如浏览器访问网站一般,永远是最新的内容和功能).对安装过程有一定的难 ...

  5. 最快安装AndroidStudio的方法(小歪整理)

    最快安装AndroidStudio的方法(小歪整理)-干货,加速加载和解决无法预览布局文件的等问题 最快安装AndroidStudio的方法(小歪整理) 1.使用解压压缩包的方式安装:android- ...

  6. CentOS 6.3下Samba服务器的安装与配置方法(图文详解)

    这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下   一.简介  Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...

  7. VirtualBox安装Debian6的方法和步骤(详细)

    下面是用VirtualBox安装Debian6的方法和步骤 l 新建一个文件夹,用于存放虚拟硬盘,如Debian l 打开VirtualBox,点击新建 l 输入虚拟机名称,Debian_6 l 给虚 ...

  8. Linux下man安装及使用方法

    常用法: man [section] name 其中: section 指的是手册页的哪个部分,可以是1.2.3…8.,若不指定,man会按照次序依次查找,知道找到第一个. name 指的是某个命令. ...

  9. linux系统下yum 安装mysql的方法

    菜鸟一个,记录下yum 安装mysql的方法,给需要的朋友也做个参考吧. 弄了个新vps,想安装最新版的mysql,网上查了相关资料,记录如下: 1.安装查看有没有安装过:          yum ...

  10. Arduino101/Genuino101的安装入门

    1.首先下载Arduino IDE                      下载地址:http://pan.baidu.com/s/1gewqV2j 选择arduino-1.6.8-windows. ...

随机推荐

  1. MSIL实用指南-比较运算

    数值的比较就是大于.小于.等于.大于等于.小于等于.不等于,它们的运算结果都是布尔值.大于.小于.等于有直接对应的指令,分别是Cgt.Clt.Ceq.大于等于.小于等于.不等于没有直接对应的指令,它的 ...

  2. 🕸捕获与改写HTTPS请求

    前言 本文站在 macOS 用户的角度下,分享一下对 HTTPS 进行请求拦截.对响应进行修改的经验. 要注意的是,本文介绍的工具虽然一定程度上对 Windows 用户也适用 ,但并非所有工具都是免费 ...

  3. 2019nc#2

    A Eddy Walker 题意 你有n个点(0-n-1),按顺序形成一个环,初始时你在0的位子,你随机顺时针走一步或者逆时针走一步, 一旦你走到一个点后,环上所有点都被经过至少一次后,你就必须停下来 ...

  4. mybatis foreach批量处理

    ---恢复内容开始--- http://blog.csdn.net/jiesa/article/details/52185617 foreach属性 属性 描述 item 循环体中的具体对象.支持属性 ...

  5. 实现一个简易版的vuex持久化工具

    背景 最近用uni-app开发小程序项目时,部分需要持久化的内容直接使用vue中的持久化插件貌似不太行,所以想着自己实现一下类似vuex-persistedstate插件的功能,想着功能不多,代码量应 ...

  6. 对line-height的理解

    <html> <head> <style> </style> </head> <body> <!--line-height ...

  7. Android如何管理sqlite

    Android中使用SQlite进行数据操作 标签: sqliteandroid数据库sqlintegerstring 2012-02-28 14:21 8339人阅读 评论(2) 举报  分类: a ...

  8. 4.String、StringBuffer、StringBuilder

    一.String类型 String类型是一个引用类型,但是该类被final修饰,属于最终类,不能派生子类. 字符串一旦初始化就不能再被更改,因为String类中存储内容的char[]数组是也被fina ...

  9. hadoop2.7.3启动报错问题

    在日志里面可以看出是没有对应的权限,因此在hdfs_site.xml中添加 <property> <name>dfs.permissions</name> < ...

  10. Winform中使用printDocument控件打印pictureBox中的二维码照片

    场景 Winform中使用zxing和Graphics实现自定义绘制二维码布局: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...