Gradle之任务(二)

本文详细介绍了Gradle的任务管理,包括如何创建任务、添加动作、设置任务依赖、禁用与启用任务,以及如何控制任务执行顺序。还讨论了默认任务、任务断言和剔除不需要的任务。此外,提到了Gradle的常用任务,如发布到私服和获取Git信息,帮助开发者更好地理解和利用Gradle进行构建工作。
摘要由CSDN通过智能技术生成

版本

  1. gradle-4.8.1

GroovyDSL

  1. 属性访问器的自动转换

    {
         
        project.buildDir
        等价于:
        getProject().getBuildDir()
    
        project.group = "dianping.beauty"
        等价于:
        project.setGroup("dianping.beauty")
    }
    
  2. 方法调用,括号可选

    {
         
        project.setProperty("buildDir","/data")
        project.setProperty "buildDir","/data"
    }
    

任务

  1. 每个gradle构建都包含三个基本块project、task、property。每个构建包含至少一个project,进而包含一个或多个task。project和task的暴露的属性可以用来控制构建。

  2. 项目(Project):代表一个正在构建的组件(一个jar文件)或一个想要完成的目标,当构建启动时,gradle会根据build.gradle实例化一个org.gradle.api.Project类

  3. 任务动作(Task Action):定义了一个当任务执行时最小的工作单元。动作就是在task中合适的地方放置构建逻辑。Task接口提供了两个相关的方法来声明task动作:doFirst(Closure)和doLast(Closure)。当task被执行的时候,动作逻辑被定义为闭包参数被依次执行。

  4. 可以为每个task只添加一个动作或者多个动作。在内部,每个task都保持了一个动作列表,在运行时,它们按顺序执行。

    task printVersion{
         
      group="verion"
      description="打印版本号"
      doFirst {
          println "2.0" }
    
    }
    
    // –q 表示日志级别为error
    $ gradle –q printVersion
    2.0
    
  5. 一个构建至少包含一个项目、一个项目可包含多个任务,项目与项目,项目中任务与任务都可以建立依赖关系。

    img

  6. 任务名字的缩写:能够以驼峰式的缩写在命令行上执行任务。不如helloWorld任务,可以通过gradle hW(当你的任务名字比较长的时候可以使用缩写,但是必须保证缩写的名字唯一)

    task helloWorld(){
         
        println "HelloWorld"
    }
    
    $ gradle -q hW
    HelloWorld
    
    
  7. 排除任务可以使用-x选项

    // 这里排除了tH任务
    $ gradle -q third -x tH  
    
  8. 根据表达式跳过任务,调用task对应的onlyIf()方法,跳过task

    1. 语法,onlyif方法接收一个闭包作为参数,如果该闭包返回true则该任务执行,否则跳过
    taskname.onlyIf{
         expression == true}
    
    2. 案例
    
    

创建任务

  1. 第一种方式,本质是调用Project对象中的task(String name)方法

    def Task task = task(helloWorld1)
    helloWorld1.doLast{
         
        println "helloWorld1"
    }
    
  2. 第二种方式,name+Map(配置)

    //任务的分组就是对任务的分类
    def Task task2 = task(helloWorld2,group: BasePlugin.BUILD_GROUP)
    helloWorld2.doLast{
         
        println "helloWorld2"
    }
    

    image-20190918132451603

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值