美文网首页
看懂Gradle脚本(5)- 跟Gradle学领域驱动设计

看懂Gradle脚本(5)- 跟Gradle学领域驱动设计

作者: zheting | 来源:发表于2018-01-01 13:07 被阅读15次
  • 领域驱动设计(DDD)
      Gradle是一个自动化build工具,所以Gradle面对的领域就是自动化构建这一领域。Gradle是按照DDD的思想设计和开发的,所以自动化构建领域里的大部分概念,在Gradle的源代码里都有一个接口或类与之对应。本文介绍对Gradle新手来说最重要的三个领域对象:Project、Task、Action。
  • Project
    Project是Gradle最重要的一个领域对象,我们写的build.gradle脚本的全部作用,其实就是配置一个Project实例。在build.gradle脚本里,我们可以隐式的操纵Project实例,比如,apply插件、声明依赖、定义Task等,如下所示:
apply plugin: 'groovy'  
dependencies {  
  compile "org.eclipse.jetty.aggregate:jetty-all:9.1.3.v20140225"  
}  
task myTask {  
  // ...  
}  

apply、dependencies、task等实际上是Project的方法,参数是一个代码块。
如果需要,也可以显示的操纵Project实例,比如:

project.ext.myProp = 'myValue'  
  • Task
    Gradle的Task等同于AntTarget。在内部,Task被组织成了一个有向无环图(DAG)。Gradle保证Task按照依赖顺序执行,并且每个Task最多只被执行一次。当我们看到下面这段脚本的时候,只要明白两点就可以了:
task myTask {  
  // ...  
}  

第一点:给Project添加一个名为“myTask”的任务
第二点:用一个闭包来配置这个任务
在闭包中,我们可以充分利用Gradle提供的DSL来配置任务,比如,给任务添加Action。

  • Action
    Task可以包含n个Action,Task提供了doFirstdoLast方法来给自己添加Action,如下所示:
task myTask {  
    doFirst {  
        println 'hello'  
    }  
    doLast {  
        println 'world'  
    }  
}  
  • 结论
    build.gradle脚本的真正作用,就是配置一个Project实例。在执行build脚本之前,Gradle会为我们准备好一个Project实例,执行完脚本之后,Gradle会按照DAG依次执行任务。

相关文章

网友评论

      本文标题:看懂Gradle脚本(5)- 跟Gradle学领域驱动设计

      本文链接:https://www.haomeiwen.com/subject/pmktnxtx.html