微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于groovy语言的DSL编程基础项目构建

Gradle是一种基于依赖的编程语言,你可以自定义task或者依赖规则在已有的task中。Gradle会让这些task按照顺序执行,且只执行一次。有些build tools工具会在任何一个task执行前构建完成一个基于依赖的task队列,便于完成它指定的编译任务,比如com.android.tools.build。

一次Gradle构建包含三个阶段:Initialization(初始化)、Configuration(配置)、Execution(运行)

1)Initialization

Gradle支持同时至少一个项目的构建,在Initialization阶段,Gradle决定哪个项目可以参与构建(build),并为它们分别创建一个Project实例。

2)Configuration

参与构建的所有项目的build script会被执行(从Gradle 1.4开始,有关联的项目才会被配置)

3)Execution

Gradle划分完成在配置阶段被创建的即将执行的task,通过gradle命令参数和当前目录确定这些task是否应该得到执行。


Setting文件

Gradle确定一个认名为setting.gradle的setting文件,这个文件会在Initialization阶段执行。同时构建多个项目时,必须在所有项目的顶层目录中放置一个setting.gradle文件,这个文件用来确定哪个项目参与接下来的构建过程。如果只有个项目,可以没有setting.gradle文件

单项目构建举例:

settings.gradle

println 'This is executed during the initialization phase.'
build.gradle

println 'This is executed during the configuration phase.'

task configured {
    println 'This is also executed during the configuration phase.'
}

task test << {
    println 'This is executed during the execution phase.'
}

task testBoth {
    doFirst {
      println 'This is executed first during the execution phase.'
    }
    doLast {
      println 'This is executed last during the execution phase.'
    }
    println 'This is executed during the configuration phase as well.'
}

运行命令:gradle test testBoth

> gradle test testBoth
This is executed during the initialization phase.
This is executed during the configuration phase.
This is also executed during the configuration phase.
This is executed during the configuration phase as well.
:test
This is executed during the execution phase.
:testBoth
This is executed first during the execution phase.
This is executed last during the execution phase.

BUILD SUCCESSFUL

Total time: 1 secs
附注:在一段Gradle脚本中,可以通过一个project对象实现对属性的访问和方法调用。同样的,在setting文件中,可以通过setting(比如Setting类对象)对象实现对属性的访问和方法调用

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐