Gradle Avoiding traps

简介: Groovy script variables 4. Groovy 脚本变量对于 Groovy DSL 的用户来说,了解 Groovy 如何处理脚本变量非常重要。 有两种类型的脚本变量。 一个具有本地作用域,另一个具有脚本范围。Example: Variables scope: local and script wide 示例: 变量范围: 本地范围和脚本范围scope.groovyString localScope1 = 'localScope1'def localScope2 = 'localScope2'scriptScope = 'scriptScope'println

Groovy script variables 4. Groovy 脚本变量



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


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


scope.groovy

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

> groovy scope.groovy
localScope1
localScope2
scriptScope
localScope1
localScope2
scriptScope
localScope1NotAvailable
localScope2NotAvailable
scriptScope


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

Configuration and execution phase 配置和执行阶段



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

build.gradle

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
    }
}


> gradle -q compile
The class directory does not exist. I can not operate


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



目录
相关文章
|
5月前
|
Java Shell
Gradle的安装及换源
Gradle的安装及换源
3266 1
|
6月前
|
Java Maven Spring
gradle 配置指南
配置Gradle指南:在`build.gradle`中添加仓库,如阿里云公共库`maven { url 'https://maven.aliyun.com/repository/public/' }`和Spring库`maven { url 'https://maven.aliyun.com/repository/spring/' }`。然后声明依赖`dependencies { compile '[GROUP_ID]:[ARTIFACT_ID]:[VERSION]' }`,最后运行`gradle dependencies`或`./gradlew
|
Java API Maven
Gradle使用总结
Gradle使用总结
251 0
|
Java Maven Android开发
gradle
Gradle 是一个现代化的构建工具,它可以帮助开发人员管理项目依赖、构建项目、运行测试、打包和部署项目等。与 Maven 类似,Gradle 也是一种基于约定的构建系统,它不仅可以管理 Java 项目,还可以管理 Android 应用程序、Kotlin 项目、Groovy 项目等。
1518 1
|
前端开发 Java Maven
Gradle build.gradle 文件
Gradle build.gradle 文件
Gradle build.gradle 文件
|
Java Android开发
gradle配置 flavor和buildType小结
gradle配置 flavor和buildType小结
5849 0
|
Java Android开发
浅谈Gradle(二)与SourceSets
之前写过了一篇Gradle(一),那是根据别人写的文章总结写的,当时其实还是很多不懂,包括我现在对gradle的理解也其实还是似懂非懂,但是还是要写,每次写完之后包括再重新多看几次,都会有新的感悟。
3020 0
|
Java Apache Kotlin
Gradle系列01 Gradle介绍与安装
说明 Gradle官网 版本:gradle-5.6.4 系统:macOS Gradle简介 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。