在这个教程中,咱们将注意力集中在Gradle的启动上。尽管Android Studio内置了Gradle,咱们如今的目标是理解Gradle的安装,启动,执行基本的Gradle命令。java
在咱们开始前,若是你想知道为何Gradle是构建工具很好的选择,我建议你阅读这篇文章article。尽管须要基础才能阅读它,这篇文章将开拓你的视野为何开发者如此拥簇Gradle.windows
接下来几部分将会带你安装Gradle。Gradle须要java环境,我假设你是java开发者,已经安装了java sdk在你的机器上。jvm
目前为止,Gradle最新版是2.2.1能够在这里获取。工具
下载zip文件到你机器上。你会发现它的文件名为gradle-2.2.2-all.zip。将它解压缩。学习
在个人机器上,我将它解压到e:\gradle-2.2.1,因此我将看到以下的子文件夹:
测试
你可能会问为何你须要单独安装Gradle。若是你已经安装了Android Studio你将会注意到这点。正如所知的,Android Studio内置了Gradle,不必再次安装Gradle。gradle
后面的教程中咱们将会讨论Android Studio,使用它内置的Gradle。这章和接下来的几章咱们会从咱们本身安装的Gradle开始,运行命令行,近距离得接触它,以便理解他到底作了什么。后面,当Android Studio作这些事的时候,咱们将更好的理解发生了什么。你就不会认为Android studio是在执行黑魔法。ui
如今,下载Gradle,启动它吧。插件
\bin文件夹包含了gradle批处理文件(unix和windows),你将用它运行命令。命令行
作接下来几件事:
1.建立系统环境变量GRADLE_HOME将它指向Gradle安装文件夹,在个人机器上是e:\gradle-2.2.1,所以我建立了GRADLE_HOME并将它的值指定为e:\gradle-2.2.1。
2.添加%GRADLE_HOME%\bin到PATH环境变量中。这将容许你在任何文件夹启动gradle命令。
为了验证是否安装成功,打开终端,输入以下命令:
gradle -v
这将会显示gradle版本信息:
------------------------------------------------------------ Gradle 2.2.1 ------------------------------------------------------------ Build time: 2014-11-24 09:45:35 UTC Build number: none Revision: 6fcb59c06f43a4e6b1bcb401f7686a8601a1fb4a Groovy: 2.3.6 Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013 JVM: 1.7.0_40 (Oracle Corporation 24.0-b56) OS: Windows 7 6.1 amd64
若是你没看到这些信息,检查你的安装,确保设置了环境变量。
任何缺乏Groovy关于Gradle的讨论都是不完整的。Groovy是最受欢迎的运行于JVM上的语言。
Gradle有如下几个优势:
代码简洁
灵活
*使你能按你所想的配置
Groovy在其中扮演了重要的角色。不像在ant和Maven中使用的xml,Groovy是高级语言。全部高级语言有的特性,好比子句Groovy都支持。你但愿Gradle运行的build文件确实是能够运行的代码。
一个问题是‘我须要学习Groovy吗?’我认为不必,除非你不使用约定而是按你本身的方式作事情,这样你须要了解Groovy,由于这是Gradle灵活的来源。通常状况下,你只使用接下来将会看到的build.gradle模板,尽管它包含Groovy语法,但你不须要彻底明白细节。
因此,尽管不须要你很好的掌握Groovy才能理解Gradle,但它帮助你更好的了解Groovy的威力。
如今咱们尚未写任何源代码或gradle文件,咱们接下来会这么作。咱们尝试接下来的几个命令:
gradle -q help
这个命令打印基本的帮助信息。-q参数指定为静默模式,当有不少无效信息输出时,这颇有效。
gradle -q tasks
这条命令列出了你可使用的命令。
gradle properties
这条命令列出了许多预约义的属性。你能够修改修改这些属性在你的build文件中。
咱们不许备编译java工程,这是下一篇作的事。咱们如今理解Groovy给Gradle带来的威力。
开始以前,咱们先讲讲build.gradle文件。这是标准的build文件名。全部你但愿执行的指令都放在这里。这个系列的教程,咱们会在build.gradle文件上建立使用各类插件/任务,来帮咱们编译、构建、测试、运行java应用。
如今,咱们作如下尝试:
在一个文件夹,好比example1,建立build.gradle。
写入以下内容:
task compileTask << { System.out.println "compiling..." }
如今在你建立该文件的目录下打开终端,输入以下命令:
gradle -q tasks
这条命令将会列出全部的你能执行的任务,你会注意到除了标准的任务,还有咱们建立的任务compileTask
Other tasks ----------- compileTask
这引出了咱们的第一个概念咱们的gradle构建文件由一系列咱们指定的任务构成,gradle构建系统为咱们执行这些任务。目前咱们指定的任务是compileTask,如你看到的Groovy代码,咱们惟一作的是System.out.pritnln。记住Groovy是高级语言。
如今,咱们怎么运行compileTask呢?
在咱们开始前,有一点要明白,当咱们执行gradle命令时,它会在当前目录中寻找build.gradle文件。若是找到就是用它。前面的例子中,系统能够找到它,他决定了哪些任务能够被执行。
若是咱们只输入gradle不带任何参数,也不指定任何任务会发生什么。咱们试试看:
gradle
将会有以下输出:
:help Welcome to Gradle 2.2.1. To run a build, run gradle <task> ... To see a list of available tasks, run gradle tasks To see a list of command-line options, run gradle --help BUILD SUCCESSFUL Total time: 2.39 secs
这很清楚的告诉你你须要指定任务名。好比gradle
gradle -q compileTaks
将会有以下输出:
compiling...
咱们改进下build.gradle文件增长另外一个任务,如今看起来像这样:
task compileTask << { System.out.println "compiling..." } task buildTask << { System.out.println "building..." }
如今,若是你给出以下命令:
gradle -q tasks
你会发现这两个任务都会列在oterTasks下:
Other tasks ----------- buildTask compileTask
你能够运行这些任务经过gradle compileTask 或 gradle buildTask。
若是咱们想去建立一个默认的任务,以便咱们不须要显示的指定任务名就能够执行。
为了达到这样的效果,修改build.gradle文件以下:
defaultTasks 'buildTask' task compileTask << { System.out.println "compiling..." } task buildTask << { System.out.println "building..." }
如今咱们输入gradle -q,将会输出building...。
最后一部分须要注意的是任务间的依赖。若是咱们想让buildTask依赖compileTask,以便如buildTask运行了,就行运行compileTask。
修改build.gradle文件以下:
defaultTasks 'buildTask' task compileTask << { System.out.println "compiling..." } task buildTask (dependsOn:compileTask) << { System.out.println "building..." }
如今执行gradle -q将会有以下显示:
compiling... building...
咱们在这个章节所讲的是很是基础的Gradle知识。将build文件做为一系列待执行的任务。若是你是java开发者有构建的经历,你会注意到这样的事实:要构建任何东西,咱们须要去作以下的事:编译,构建,运行,测试,打包。这些在Gradle中都以任务存在。
咱们不须要去手工写全部的这些任务,尽管你能够这么去作,只要你愿意。使用Gradle遵循的约定和插件(plugins),咱们能够执行一系列步骤去构建咱们的工程。
现有的插件有如java plugin, WAR pluginn, AppEngine plugin, Android plugin等,这些插件给出了预约义的任务。后面的章节,咱们将会看到更多。
在下一章中,咱们将使用gradle去编译构建java工程。