基于groovy语言的DSL编程基础(项目构建)
来源:互联网 发布:新三板数据 编辑:程序博客网 时间:2024/05/22 15:00
Gradle是一种基于依赖的编程语言,你可以在已有的task中自定义task或者依赖规则。对比我们最常用的语言,比如java、Object-C,Gradle就像同时包含了配置虚拟机、字节码解释规则、code语法。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 testBothThis 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.:testThis is executed during the execution phase.:testBothThis is executed first during the execution phase.This is executed last during the execution phase.BUILD SUCCESSFULTotal time: 1 secs
附注:在一段Gradle脚本中,可以通过一个project对象实现对属性的访问和方法的调用。同样的,在setting文件中,可以通过setting(比如Setting类对象)对象实现对属性的访问和方法的调用。
- 基于groovy语言的DSL编程基础(项目构建)
- Gradle构建之Groovy语言基础
- 实战 Groovy: Groovy:Java 程序员的 DSL
- 实战 Groovy: Groovy:Java 程序员的 DSL
- paip. dsl 编程语言优点以及 常见的dsl
- Groovy高效编程——创建DSL
- Groovy dsl
- Groovy DSL
- Groovy DSL
- Groovy DSL
- Gradle, 基于DSL的新一代Java构建工具
- Gradle, 基于DSL的新一代Java构建工具
- Groovy探索 关于方法名的DSL
- 【转】实战 Groovy: Groovy:Java 程序员的 DSL
- 编程语言的发展趋势及未来方向(2):声明式编程与DSL
- Groovy DSL (1) Command chains
- 基于领域特定语言(DSL)的用例驱动开发(UDD)
- Groovy语言语法基础
- 计算机网络之IP地址
- win10 网络连接 文件夹为空 的解决办法
- 转发代理服务器和反向代理服务器(转)
- 动画 Android:interpolator用法
- !important元素无法提升权重是0的东西,该是0还是0
- 基于groovy语言的DSL编程基础(项目构建)
- ubuntu12.04下安装opencv库的步骤及出现的问题
- 10.9
- 初识别输入输出
- Kinect-Fusion ICP算法构建带法向量点云金字塔
- SpringBoot 1.4升级中遇到的奇葩问题
- 【Linux4.1.12源码分析】二层报文发送之报文GSO分段(IP层)
- 変分学引入
- 软考总结--网络