gradle学习(11)-编写构建脚本

来源:互联网 发布:库里16赛季数据 编辑:程序博客网 时间:2024/05/31 18:52

1.DSL


gradle脚本语言是一个领域专业语言,以groovy为基础。


2.project api


调用project的api来获取和项目有关的信息


task check<<{        println name        println project.name}

qianhuis-Mac-mini:0110 qianhui$ gradle -q checkcheck0110

由此可以看出第一个name是指任务名,第二个project.name打印项目的名称。如果你把println name移到任务外,他就会打印项目的名称


println nametask check<<{        println project.name}   

qianhuis-Mac-mini:0110 qianhui$ gradle -q check01100110


其他一些project相关的属性


println nametask check<<{        //项目名        println project.name        //项目相对路径        println project.path        //项目描述        println project.description        //项目的绝对路径        println project.projectDir        //项目的build文件绝对路径        println project.buildDir        //项目所在的group        println project.group        //项目的版本号        println project.version        //项目的ant对象        println project.ant}

输出


qianhuis-Mac-mini:0110 qianhui$ gradle -q check01100110:null/Users/qianhui/Documents/Developer/gradle_project/0110/Users/qianhui/Documents/Developer/gradle_project/0110/buildunspecifiedorg.gradle.api.internal.project.DefaultAntBuilder@7cc03cf7


3.脚本api


当执行脚本的时候,会将脚本编译成一个class,该class是实现Script 接口的。说明你在脚本中所定义的方法和属性都存在于该script对象中。


4.自定义变量


你可以在你自己写的脚本中定义本地变量。

运用groovy基础语法,可以使用def定义一个本地变量。


def dest = "this is myself"task check<<{        println dest}

qianhuis-Mac-mini:0110 qianhui$ gradle -q checkthis is myself


5.自定义属性


ext块可以一次性添加多个属性


apply plugin: "java"ext {    springVersion = "3.1.0.RELEASE"    emailNotification = "build@master.org"}sourceSets.all{    ext.purpose = null}sourceSets{    main{        purpose = "production"    }    test{        purpose = "test"    }    plugin{        purpose = "plugin"    }}task printProperties << {    println springVersion    println emailNotification    sourceSets.matching{    it.purpose=="production"}.each{    println it.name}}

执行该任务会打印上面定义的属性


qianhuis-Mac-mini:0110 qianhui$ gradle -q printProperties3.1.0.RELEASEbuild@master.orgmain

0 0
原创粉丝点击