文档章节

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

xxjbs001
 xxjbs001
发布于 2015/01/16 11:26
字数 428
阅读 63
收藏 0

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

本文转载自:http://blog.csdn.net/itfootball/article/details/42563705

xxjbs001
粉丝 55
博文 753
码字总数 217215
作品 0
浦东
QA/测试工程师
私信 提问
学习Android构建系统(三)-Gradle基础

引言 Gradle是Android构建系统的重点,需要花费时间用心学习。学习资料主要是官方的Gradle Docs。 Gradle简介 Gradle是一个注重灵活性和性能的开源构建自动化工具,使用Groovy或Kotlin DSL来...

十思叶
2018/08/27
0
0
全面理解Gradle - 执行时序

什么是Gradle? 一个像 Ant 一样的非常灵活的通用构建工具 一种可切换的, 像 maven 一样的基于合约构建的框架 支持强大的多工程构建 支持强大的依赖管理(基于 ApacheIvy ) 支持已有的 maven ...

SuShine
2018/08/31
103
0
Android Gradle(一)为什么现在要用Gradle?

前言 又要开启一个新系列了,这个系列我们来学习Gradle,它是一个基于JVM的新一代构建工具,关于Gradle完全可以写一本书,这个系列会针对Android开发来对Gradle的知识进行精简讲解。Gradle目...

刘望舒
2018/08/21
0
0
揭秘Android开发效率提升多倍的利器;Gradle

Gradle是什么? Gradle是一种构建语言,目前是Android的默认构建工具,我们编写的编译脚本,其实就是玩Gradle的API,所以从它更底层的意义上看,是一个编程框架。 因为涉及的内容很多没法一两...

android飞鱼
01/17
0
0
一篇文章带你了解Gradle插件的所有创建方式

Gradle中插件可以分为两类:脚本插件和对象插件。 脚本插件 脚本插件就是一个普通的gradle构建脚本,通过在一个foo.gradle脚本中定义一系列的task,另一个构建脚本bar.gradle通过即可引用这个...

android飞鱼
01/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

IT兄弟连 HTML5教程 HTML5表单 小结及习题

小结 HTML表单提交的方法有get方法和post方法,get方法的作用是从指定的资源请求数据,post方法的作用是向指定的资源提交要被处理的数据。HTML表单一直都是Web的核心技术之一,有了它我们才能...

老码农的一亩三分地
20分钟前
12
0
向maven工程中导入自己封装好的jar包方法

1.打开cmd窗口 输入并执行:mvn install:install-file -DgroupId=com.test   -DartifactId=ptest -Dversion=0.1  -Dfile=E:\test\test-0.1.0.jar    -Dpackaging=jar注:Dgr......

gantaos
22分钟前
3
0
【jQuery基础学习】09 jQuery与前端(这章很水)

本文转载于:专业的前端网站➨【jQuery基础学习】09 jQuery与前端(这章很水) 这章主要是将如何将jQuery应用到网站中,或者说其实就是一些前端知识,对于我这种后端程序来说其实还是蛮有用的...

前端老手
33分钟前
11
0
深度科技与金山云完成兼容互认证 共同促进我国软件生态发展

近日,深度科技与金山云完成兼容互认证工作,经双方共同严格测试,深度操作系统ARM服务器版软件V15与金山云分布式数据库软件DragonBase V1.0相互兼容、稳定运行,可以为企业级应用提供全面保...

后浪涛涛
34分钟前
7
0
Less导入选项

Less 提供了CSS @import CSS规则的几个扩展,以提供更多的灵活性来处理外部文件。 语法: @import (keyword) "filename"; 以下是导入指令的相关详情: reference,使用较少的文件但不输出。 ...

凌兮洛
50分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部