前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Gradle Avoiding traps

Gradle Avoiding traps

作者头像
acc8226
发布2022-05-17 17:35:48
1060
发布2022-05-17 17:35:48
举报
文章被收录于专栏:叽叽西

Groovy script variables 4. Groovy 脚本变量

对于 Groovy DSL 的用户来说,了解 Groovy 如何处理脚本变量非常重要。 有两种类型的脚本变量。 一个具有本地作用域,另一个具有脚本范围。

Example: Variables scope: local and script wide 示例: 变量范围: 本地范围和脚本范围

scope.groovy

代码语言:javascript
复制
String localScope1 = 'localScope1'
def localScope2 = 'localScope2'
scriptScope = 'scriptScope'

println localScope1
println localScope2
println scriptScope

closure = {
    println localScope1
    println localScope2
    println scriptScope
}

def method() {
    try {
        localScope1
    } catch (MissingPropertyException e) {
        println 'localScope1NotAvailable'
    }
    try {
        localScope2
    } catch(MissingPropertyException e) {
        println 'localScope2NotAvailable'
    }
    println scriptScope
}

closure.call()
method()

Output of 产量groovy scope.groovy

代码语言:javascript
复制
> groovy scope.groovy
localScope1
localScope2
scriptScope
localScope1
localScope2
scriptScope
localScope1NotAvailable
localScope2NotAvailable
scriptScope

使用类型修饰符声明的变量在闭包中可见,但在方法中不可见。

Configuration and execution phase 配置和执行阶段

记住 Gradle 有一个独特的配置和执行阶段是很重要的(请参阅构建生命周期)。

build.gradle

代码语言:javascript
复制
def classesDir = file('build/classes')
classesDir.mkdirs()
task clean(type: Delete) {
    delete 'build'
}
task compile {
    dependsOn 'clean'
    doLast {
        if (!classesDir.isDirectory()) {
            println 'The class directory does not exist. I can not operate'
            // do something
        }
        // do something
    }
}
代码语言:javascript
复制
> gradle -q compile
The class directory does not exist. I can not operate

在配置阶段创建目录时,清理任务会在执行阶段删除目录。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Groovy script variables 4. Groovy 脚本变量
    • Example: Variables scope: local and script wide 示例: 变量范围: 本地范围和脚本范围
    • Configuration and execution phase 配置和执行阶段
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档