关闭

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

标签: gradle
2145人阅读 评论(1) 收藏 举报
分类:

1.DSL


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


2.project api


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


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

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

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


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

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


其他一些project相关的属性


println name
task 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 check
0110
0110
:
null
/Users/qianhui/Documents/Developer/gradle_project/0110
/Users/qianhui/Documents/Developer/gradle_project/0110/build

unspecified
org.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 check
this 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 printProperties
3.1.0.RELEASE
build@master.org
main

0
0
查看评论
发表评论
* 以上用户言论只代表其个人钱柜娱乐开户,不代表CSDN网站的钱柜娱乐开户或立场

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

1.DSL 领域专业语言
  • qhshiniba
  • qhshiniba
  • 2015-01-10 12:17
  • 2145

钱柜娱乐开户 gradle自动构建大总结

钱柜娱乐开户 gradle自动构建背景:日常出版本和线上出版本时,需要手动修改一些配置,包括key配置、线上/测试环境配置、版本号增加等,过程繁琐。所以对构建脚本进行改进,达到自动构建目的。
  • duantihi
  • duantihi
  • 2017-02-16 13:25
  • 1555

Gradle脚本基础全攻略

【工匠若水 /yanbober 转载请注明出处。点我开始钱柜娱乐开户技术交流】1 背景在开始Gradle之前请务必保证自己已经初步了解了Groovy脚本,特别...
  • yanbober
  • yanbober
  • 2015-10-25 23:19
  • 74306

Gradle 1.12 翻译——第十三章 编写构建脚本

第十三章 编写构建脚本 这一章着眼于一些编写构建脚本的详细信息。 13.1. Gradle 构建语言 Gradle 提供一种领域特定语言或者说是 DSL,来描述构建。这种构建语言基于 Groovy ...
  • maosidiaoxian
  • maosidiaoxian
  • 2014-11-10 09:17
  • 3593

Gradle学习(十一)——构建脚本基础知识

Gradle的所有都是基于两个基础概念:项目和任务每个Gradle构建是由一个或者多个项目构成的,项目表示什么取决于你用Gradle做什么。比如,项目可以表示jar库或者web程序。它也可以表示由其他...
  • lastsweetop
  • lastsweetop
  • 2018-01-03 16:26
  • 676

Gradle学习脚本

  • 2015-12-02 10:07
  • 2KB
  • 下载

Gradle-user guide-第6章 构建脚本基础(译)

构建脚本基础( 6.1. 项目和任务 Gradle里的一切都基于这两个基本概念:项目和任务(projects and tasks) 每个Gradle构建都由一个或多个项...
  • tudayu123
  • tudayu123
  • 2014-08-07 14:13
  • 422

Gradle——构建脚本基础

1、项目(project)和任务(task)Gradle中的任何事都基于两个基本概念:项目(project)和任务(task)每一个构建(build)都是由一个或多个项目组成的。一个项目代表什么取决于...
  • u012325167
  • u012325167
  • 2015-10-19 20:08
  • 302

Gradle-user guide-第6章 构建脚本基础(译) --续

6.6动态任务 Groovy不仅仅能够定义一个任务做什么,例如,它也能够动态的创建任务。 例子6.8任务的动态定义 build.gradle 4.times { counter -> ...
  • tudayu123
  • tudayu123
  • 2014-08-09 14:53
  • 516

Gradle笔记2-构建脚本

Gradle笔记-构建脚本
  • Trouble__maker
  • Trouble__maker
  • 2016-12-31 14:53
  • 77
    个人资料
    • 访问:1702471次
    • 积分:21762
    • 等级:
    • 排名:第392名
    • 原创:570篇
    • 转载:1篇
    • 译文:9篇
    • 评论:571条
    钱柜娱乐开户