文档章节

Gradle构建脚本基础

似水流年0_0
 似水流年0_0
发布于 2016/12/21 12:16
字数 547
阅读 113
收藏 2

介绍一下gradle的构建脚本基础知识,在这之前简单说一下gradle的介绍与安装

gradle介绍:

gradle是一个基于JVM的构建工具,类似于Ant和maven,但是比ant和maven更为强大,它基于groovy的构建脚本。gradle里的任何东西都是基于projects和tasks,每一个构建是由一个或多个project构成,一个project又由一个或多个task。

gradle安装(Mac):

  1. gradle需要运行在一个java环境里,所以安装gradle之前,需要安装java JDK。
  2. 安装gradle的方式有很多种,我是通过brew来安装的:
    1. 若没有安装homebrew,请去homebrew官网查看一下安装,也可以看一下这个博客:https://my.oschina.net/gef/blog/658168
    2. 安装brew之后,使用命令:
      brew install gradle

      安装gradle

    3. 完成之后,执行命令:

      gradle -v

      若出现:

      
      ------------------------------------------------------------
      Gradle 2.12
      ------------------------------------------------------------
      
      Build time:   2016-03-14 08:32:03 UTC
      Build number: none
      Revision:     b29fbb64ad6b068cb3f05f7e40dc670472129bc0
      
      Groovy:       2.4.4
      Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
      JVM:          1.8.0_40 (Oracle Corporation 25.40-b25)
      OS:           Mac OS X 10.11.4 x86_64

      说明安装成功。

gradle构建脚本基础:

  1. hello  world:创建一个build.gradle文件,然后写一个hello world:
    task hello{
    	doLast{
    		println 'Hello world!'
    	}
    }
    

    然后打开终端,cd到该目录下,执行:

    gradle hello

    输出:

    :hello
    Hello world!
    
    BUILD SUCCESSFUL
    
    Total time: 4.593 secs
    
    This build could be faster, please consider using the Gradle Daemon: https://docs.gradle.org/2.12/userguide/gradle_daemon.html
    

    你也可以执行:,发现没有那些日志信息了。

  2. 快捷的任务定义:

    task hello3 << {
    	println 'hello world 3!'
    }

    其中 << 就相当于 doLast

  3. 任务依赖:

    task task2(dependsOn : "task1") << {
    	println "task2"
    }
    task task1 <<{
    	println "task1"
    }

    task task1 <<{
    	println "task1"
    }
    
    task task2(dependsOn : task1) << {
    	println "task2"
    }

    task task1 << {
    	println "task1"
    }
    
    task task2 << {
    	println "task2"
    }
    task2.dependsOn task1

     

  4. 动态任务:

    4.times { i ->
    	task "taskk$i" << {
    		println "I am task number $i"
    	}
    }

    生成了4个任务:taskk0,taskk1,taskk2,taskk3,执行

  5. 使用已经存在的任务:

    task sumu <<{
    	println "sumu1"
    }
    sumu.doLast{
    	println "sumu2"
    }
    sumu.doFirst{
    	println "sumu3"
    }
    sumu << {
    	println "sumu4"
    }

    然后执行:,注意一个任务的doFirst和doLast可以有多个。

  6. 短标记法:

    task ffge <<{
    	println "你好,$ffge.name"
    }
    

    执行:

  7. 自定义任务属性:

    task person {
    	ext.name = "张三"
    	ext.age = 10
    	doFirst{
    		println "名字为:$name,年龄为:$age"
    	}
    }
    

    执行:

  8. 默认任务:

    defaultTasks "hello"
    task hello{
    	doLast{
    		println 'Hello world!'
    	}
    }
    

    执行:

 

OK,到此结束。

© 著作权归作者所有

似水流年0_0
粉丝 58
博文 84
码字总数 55871
作品 0
长宁
技术主管
私信 提问
加载中

评论(1)

Zmydhy
Zmydhy
小伙子 你很吊啊
学习Android构建系统(三)-Gradle基础

引言 Gradle是Android构建系统的重点,需要花费时间用心学习。学习资料主要是官方的Gradle Docs。 Gradle简介 Gradle是一个注重灵活性和性能的开源构建自动化工具,使用Groovy或Kotlin DSL来...

十思叶
2018/08/27
0
0
Gradle插件,Groovy与DSL

编写Gradle插件可能需要一点Goovy知识,具体编写直接用java语言写也可以,Goovy是完全兼容java的,只截取插件入口部分实现PluginEntry.groovy。 Gradle本身的领域对象主要有Project和Task。P...

desaco
05/07
0
0
gradle :Java项目开发环境构建工具

gradle Gradle 是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。 中文名 gradle 基 础 Groovy 语言 服务对象 Java应用 整体设计 以作为一种语言为...

惠城君
2015/12/18
54
0
如何理解Gradle?Grade在Android的构建过程中有什么作用?动态修改AndroidManifest.xml.

如何理解Gradle? 1、首先Gradle是什么? Gradle是一个基于Groovy的打包、编译的工具,主要面向java应用。 2、Gradle在Android构建过程中有什么作用? Gradle是Android里最方便也是最好的用来...

小鹿啊小鹿
2017/12/21
0
0
Gradle基础 - 构建生命周期和Hook技术

对于初学者来说,面对各种各样的Gradle构建脚本,想要梳理它的构建流程,往往不知道从何入手。Gradle的构建过程有着固定的生命周期,理解Gradle的生命周期和Hook点,有助于帮你梳理、扩展项目...

Joe_H
2018/05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
11
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部