gradle学习笔记(1)

1. 安装

    (1) 下载最新gradle压缩包,解压到某处。地址是:Gradle web site

    (2) 添加环境变量:

            1) 变量名:GRADLE_HOME 变量值:刚才解压的地址,如:E:\gradle-2.8。

            2) 为Path变量添加一个值:GRADLE_HOME/bin

            3) 测试。在命令行里输入gradle -v,若显示一些gradle信息,说明安装成功。

2. Hello World

(1) 基本概率

    gradle中的一切都基于两个概念:projecttask

    每次gradle build都是组装一个或多个project。project可能是一个library JAR,也可能是一个web应用,它还能是一个配置(不一定能被Build);

    每一个project由一个或多个task组成

 

(2) 基本操作

例1

build.gradle

task hello {
    doLast {
        println ‘Hello world!‘
    }
}

    现在你能在命令行中进入该文件所在目录,然后输入命令gradle -q hello 去执行hello任务,你将会在命令行中看到Hello World!

    它的执行过程是当你执行gradle命令时,gradle会在当前目录下寻找build.gradle文件。

    build.gradle也被称为build script。另外,命令中-q的意思是不要输出gradle的一些日志信息。

    还有一种更简便的task的写法:

task hello << {
    println ‘Hello world!‘
}

(3) 使用Groovy语句

   

    在build脚本中还可以使用Groovy语句。

例2

task upper << {
    String someString = ‘mY_nAmE‘
    println "Original: " + someString
    println "Upper case: " + someString.toUpperCase()
}

同样,执行命令gradle -q upper,将输出:Original:hElLo wOrLd !(换行)Upper case:HELLO WORLD !

例3

task count << {
    4.times { print "$it " }
}

输出:0 1 2 3。注意:$it 是被双引号包含。

 

(4) 任务的依赖(Task dependencies)

task hello << {
    print ‘Hello world,‘
}

task intro(dependsOn: hello) << {
    print "I‘m Gradle!"
}

    输出:Hello world,I‘m Gradle!

    另外,若想实现Lazy dependsOn(懒依赖),即把依赖任务写到被依赖任务的前面,例如上面想要将intro任务写到hello任务的前面,需要将intro任务中的dependsOn: hello中的hello打上单引号,否则会报Could not find property ‘hello‘ on root project ‘test‘.错误,即:

task intro(dependsOn: ‘hello‘) << {
    println "I‘m Gradle!"
}

task hello << {
    print ‘Hello world,‘
}

 

(5) 动态任务(Dynamic tasks)

例4

4.times { counter ->
    task "task$counter" << {
        println "I‘m task number $counter"
    }
}
task0.dependsOn task2, task3

执行命令gradle -q task0,输出:

I‘m task number 2
I‘m task number 3
I‘m task number 0

为一个存在的任务添加行为,如下:

例5

task hello << {
    println ‘Hello Earth‘
}
hello.doFirst {
    println ‘Hello Venus‘
}
hello.doLast {
    println ‘Hello Mars‘
}
hello << {
    println ‘Hello Jupiter‘
}

输出:

Hello Venus
Hello Earth
Hello Mars
Hello Jupiter

 

(6) 额外的任务参数(Extra task properties)

例6

task myTask {
    ext.myProperty = "myValue"
}

task printTaskProperties << {
    println myTask.myProperty
}

输出:myValue

 

(7) 使用 Ant 任务

例7

task loadfile << {
    def files = file(‘你要遍历的路径,可以是相对路径,也可以是绝对路径(注意路径中的斜杠,要么写一个正斜杠,要么写两个反斜杠)‘).listFiles().sort()
    files.each { File file ->
        if (file.isFile()) {
            ant.loadfile(srcFile: file, property: file.name)
            println " *** $file.name ***"
            println "${ant.properties[file.name]}"
        }
    }
}

为了增强代码的灵活性与重用性,可以将一些代码抽取成一个方法,如:

 

(8) 默认任务

例8

defaultTasks ‘clean‘, ‘run‘

task clean << {
    println ‘Default Cleaning!‘
}

task run << {
    println ‘Default Running!‘
}

task other << {
    println "I‘m not a default task!"
}

输出:

Default Cleaning!
Default Running!

(9) Configure by DAG

例9

task distribution << {
    println "We build the zip with version=$version"
}

task release(dependsOn: ‘distribution‘) << {
    println ‘We release now‘
}

gradle.taskGraph.whenReady {taskGraph ->
    if (taskGraph.hasTask(release)) {
        version = ‘1.0‘
    } else {
        version = ‘1.0-SNAPSHOT‘
    }
}

执行gradle -q distribution 输出:We build the zip with version=1.0-SNAPSHOT

执行gradle -q release 输出:

We build the zip with version=1.0
We release now
时间: 2024-10-02 02:14:59

gradle学习笔记(1)的相关文章

gradle学习笔记

一直想着花时间学习下gradle,今天有空.入门一下.参考:极客学院gradle使用指南,以及csdn专栏:gradle翻译 手下下载gradle的zip,然后根据极客学院的教程手动打一遍. 测试代码:https://github.com/chenxing12/l4gradle

Gradle学习笔记之Groovy

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具.它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置.Gradle的构建脚本build.gradle和setting.gradle都是可执行的Groovy脚本(不过它们不可以在Groovy运行时环境下运行, 由于上述.gradle文件都需要调用gradle的api运行且后缀不是.groovy). 下面通过与Java对比, 简单介绍小于Gradle相关的Groo

Gradle 学习笔记

前言 android gradle 的插件终于把混淆代码的task集成进去了,加上最近,android studio 用的是gradle 来构建项目, 下定决心把android gralde 构建项目的用户指南全部看完, 让不会用gradle 的人也用gradle构建android项目,让打包(注意,打包和构建是两码事)多版本android不再痛苦.最后,题外话:珍惜生命,远离ant.... Gradle build android 历史 Android Tools 主页 ,大概是今年2月份发布

Android Gradle 学习笔记1

Gradle环境配置 1.找到gradle的文件路径,以mac为例,先在应用程序里找到Android Studio, 右键"显示包内容",在Contents/gradle/gradle-2.14.1(版本号可能不同)目录下找到bin,可以把bin文件夹往终端里一拖,就有bin文件夹的完整路径. 2.将Gradle bin文件夹的完整目录加到.bash_profile文件里,cd ~,再vim .bash_profile(不愿命令行的,可以在finder ,command + shift

Gradle学习笔记--Gradle项目(三)

1.新建一个项目 2.选择gradle,勾选Java 3.项目结构 原文地址:https://www.cnblogs.com/yang-young-young/p/8297755.html

学习笔记——Maven实战(六)Gradle,构建工具的未来?

Maven面临的挑战 软件行业新旧交替的速度之快往往令人咂舌,不用多少时间,你就会发现曾经大红大紫的技术已经成为了昨日黄花,当然,Maven也不会例外.虽然目前它基本上是Java构建的事实标准,但我们也能看到新兴的工具在涌现,比如基于Goovy的Gradle,而去年Hibernate宣布从Maven迁移至Gradle这一事件更是吸引了不少眼球.在此之前,我也听到了不少对Maven的抱怨,包括XML的繁冗,不够灵活,学习曲线陡峭等等.那Gradle是否能够在继承 Maven优点的基础上,克服这些缺

Gradle学习目录总结

如果是你想干的事情,在别人看起来可能是很难的一件事,不过你自己很喜欢,你不会觉得很苦.我开始创业那会是28岁.对我来讲,我创业的目的不是为了自己当老板,我希望有一个平台有一个环境,我可以控制一些资源,让我去创造一个新的产品和服务: -- 周鸿祎 Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的领域特定(DSL)语言. 当然,我们现在最多都是在Android Studio的项目中,和我一样没有接触过的就

react-native学习笔记--史上最详细Windows版本搭建安装React Native环境配置

参考:http://www.lcode.org/react-native/ React native中文网:http://reactnative.cn/docs/0.23/android-setup.html#content 1.安装Jdk(最好默认安装路径尽量别改) http://jingyan.baidu.com/article/a24b33cd59b58e19fe002bb9.html http://www.jb51.net/article/36811.htm(三个环境变量都配置)  Ja

Android学习笔记二十九之SwipeRefreshLayout、RecyclerView和CardView

Android学习笔记二十九之SwipeRefreshLayout.RecyclerView和CardView 前面我们介绍了AlertDialog和几个常用的Dialog,ProgressDialog进度条提示框.DatePickerDialog日期选择对话框和TimePickerDialog时间选择对话框.这一节我们介绍几个新的API控件SwipeRefreshLayout.RecyclerView和CardView,这几个API控件都是google在Android5.0推出的.下面我们来学