Gradle构建脚本基础学习,Groovy语言基础。

Gradle构建脚本基础学习,Groovy语言基础。

一. Gradle是什么

定义:Gradle它使用一种基于Groovy的特定领域语言来声明项目设置。

1.1 APK构建

编译资源,编译代码,apk签名。

1.2 Gradle的执命令

./gradlew clean

./gradlew projects

./gradlew tasks

1.3 Gradle版本的改变,升级降级

命令行操作:./gradlew wrapper --gradle-version 想要的版本号

或者直接修改工程目录下的gradle-wrapper.properties

二. 如何在Android Studio 中运行 groovy 程序

参考下面这个老哥的博客:

https://blog.csdn.net/Gdeer/article/details/83062523

2.1 简单语法

class MyGroovy {
    static void main(String[] args) {
        
        //变量
        int a = 10
        def b = 10
        println "a=$a"
        println "b=$b"
        //字符串
        String str = "111aaaaaa1"
        String str2 = str.toUpperCase()
        println "str=$str"
        println "str2=$str2"
        //集合
        def array = [1, 2, 2, 2]
        println "array $array"
        array.add(222)
        array.each { println it }
        //map
        def map = ["name": "1221", "age": 100]
        println "$map"
        println "${map["age"]}"
        //循环
        for (i in 0..<10) {
            println i
        }

        hello(1111)
    }
    //方法
    def hello(String name){
        println name
    }
}

2.2 高级语法

DSL,闭包,类

闭包(函数表达式):开放匿名的代码块,可以接受参数,具有返回值也可以被分配给变量。

{[ params -> ] statements }

class MyGroovy {
    static void main(String[] args) {
        def c = {
            println 111
        }
        def c2 = {
            it -> println it
        }
        c2(123)
        def c3 = {
            name1, name2 ->
                {
                    println name1
                    println name2
                }
        }
        c3(111, 222)

        def list = [1, 2, 3, 4, 5]
        list.each {
            it ->
                println it
        }
    }
}

DSL:

class MyGroovy {
    static void main(String[] args) {
        def android = {
            compileSdkVersion 27
            defaultConfig {
                versionName "1.0"
            }
        }
        Android a = new Android()
        //将闭包与具体对象关联起来
        android.dehydrate = a
        android.call()
        println ("$a")
    }
}

class DefaultConfig {
    private String versionName

    def versionName(String versionName) {
        this.versionName = versionName
    }

    @Override
    String toString() {
        return "DefaultConfig{ versionName = $versionName}"
    }
}

class Android {
    private int compileSdkVersion
    private DefaultConfig defaultConfig

    Android() {
        this.defaultConfig = new DefaultConfig()
    }

    def compileSdkVersion(int compileSdkVersion) {
        this.compileSdkVersion = compileSdkVersion
    }

    def defaultConfig(Closure closure) {
        closure.setDelegate(defaultConfig)
        closure.call()
    }

    @Override
    String toString() {
        return "Android{ compileSdkVersion = $compileSdkVersion,defaultConfig = $defaultConfig }"
    }
}

2.3 Gradle构建常用脚本文件

settings.gradle

build.gradle

gradle.properties

2.4 生命周期,先后顺序

初始化阶段

配置阶段

执行阶段

settings.gradle中测试

gradle.addBuildListener(new BuildListener() {
    @Override
    void settingsEvaluated(Settings settings) {
        println "Initialization phase completed"
    }

    @Override
    void projectsLoaded(Gradle gradle) {
        println "During the configuration loading process"
    }

    @Override
    void projectsEvaluated(Gradle gradle) {
        println "configuration complete"
    }

    @Override
    void buildFinished(BuildResult buildResult) {
        println "End of construction"
    }
})

2.4 重要目录,Gradle任务

初始化阶段- root project

配置阶段- project

执行阶段- task

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值