开发者社区> developerguy> 正文

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。
+关注继续查看

 

 

原文地址: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。解压后有这些文件

image

你可能会问:为什么要安装一个原始版本的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的安装路径,在我的电脑,这样添加:

image

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

image

 

检查配置

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

gradle –v

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

image

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

 

关于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:

image

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

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

 

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

 

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

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

gradle

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

image

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

gradle –q compileTask

就有一个输出消息

image

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

task compileTask << {

       System.out.println “compiling…”

}

task buildTask <<{

       System.out.println “building…”

}

 

 

现在执行下面的命令:

gradle –q tasks

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

image

 

现在你就可以执行

gradle compileTask

或者

gradle buildTask

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

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

defaultTasks 'buildTask'

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

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

image

最后一部分要讨论的,就是任务之间的相互依赖。这个问题是这样的情况:如果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,就应该有如下输出:

image

 

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

 

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

 

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

 

http://www.cnblogs.com/pavkoo/p/4164931.html

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
29202 0
Directx11教程(43) 纹理映射(13)-动态纹理映射
本篇教程中,我们将在前面基于光照的地形与水面程序里面加上纹理映射,而且我们会基于时间动态改变水面的纹理坐标,实现水面纹理波动的效果。       地形(山谷)以及水面都是基于网格的平面。
824 0
Directx11教程39 纹理映射(9)
在myTutorialD3D11_32中,我们在PlaneModelClass中增加一个纹理TextureClass* m_Texture;读入一个grass的纹理,程序执行后的效果如下: 完整的代码请参考: 工程文件myTutorialD3D11_32 代码下载: http://files.
827 0
Gradle下载与安装
Gradle下载与安装
29 0
PySide教程:第一个PySide应用
  PySide安装:请参考 http://www.meegoq.com/thread-1161-1-1.html   使用你已经安装了PySide,那么现在你应该已经拥有完整的PySide拷贝,并且可以使用Qt+Python的方式开发GUI应用程序。
1239 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
20714 0
Directx11教程40 纹理映射(10)
本章尝试使用纹理行列式,或者说纹理数组,在ps中,使用2个纹理,最终的像素颜色,是光照颜色*纹理1采样颜色*纹理2采样颜色,主要是想达到如下的效果:    把这两个图像以及光照产生的颜色融合生成以下图像:   为此我们新建一个lighttex2.
923 0
基于Visual C++.NET的GDI+开发教程
GDI+接口是Microsoft Whistler操作系统中的一部分,它是GDI的一个新版本,不仅在GDI基础上添加许多新特性而且对原有的GDI功能进行优化。在为开发人员提供的二维矢量图形、文本、图像处理、区域、路径以及图形数据矩阵等方面构造了一系列相关的类,如Bitmap(位图类)、Brush(画刷类)、Color(颜色类)、Font(字体类)、Graphics(图形类)、Image(图像类)、Pen(画笔类)和Region(区域类)等。
946 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23588 0
+关注
developerguy
A code cleanliness code farmers, A programmer concentrate on elegant design, A want to do with the product architect
1663
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载