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 举报,一经查实,本站将立刻删除。