gradle kotlin dsl(Groovy to kotlin)

这是我参与更文挑战的第5天,活动详情查看:更文挑战

前言

上一篇文章说我们可以使用kotlin作为脚本语言代替groovy。这篇就从新建一个项目开始一步一步把groovy转换成kotlin。ps:迁移时可以不完全迁移,项目是支持groovy和kotlin两种脚本语言同时进行的

为什么使用kotlin和groovy对比有什么优势?

相信目前android开发者大部分已经接触kotlin,所以在选择kotlin作为脚本语言开发是非常顺畅的下面使用一个表格来对比一下groovy和kotin的区别

kotlin groovy
自动代码补全
类型安全
源码快速导航
重构 自动 手动

着手更改项目中gradle脚本语言为kotlin

android项目使用gradle作为构造工具,项目目录下会生成settings.gradle,build.gradle,app/build.gradle

kotlin和groovy一些简单的语法差异

  1. grrovy字符串可以使用单引号,而kotlin必须为双引号
  2. groovy在方法调用时可以省略扩号,而kotlin不可省略
  3. groovy分配属性时可以省略=赋值运算符,而kotlin不可省略
修改settings.gradle

修改扩展名为settings.gradle.kts,编辑器会提示你需要更改单引号为双引号,因为kotlin中字符串是使用双引号的!然后把include “:app” 更改为kotlin调用方法的形式 include(“:app”) 进行sync 这样settings.gradle就更改完成
1624410645(1).jpg

修改build.gradle

修改扩展名为build.gradle.kts根据语法差异进行整个文件方法调用加上括号。
修改clean task 为register方式 sync 完成

//task clean(type: Delete) {
//    delete(rootProject.buildDir)
//}
tasks.register<Delete>("clean") {
    delete(rootProject.buildDir)
}
复制代码

修改app/build.gralde

修改扩展名为build.gradle.kts

插件apply 
//修改前
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

//修改后
plugins {
    id("com.android.application")
    kotlin("android")
    kotlin("android.extensions")
}

*versionCode ,versionName,buildToolsVersion 为变量
修改成 var = ""*

//修改前
versionCode 1
versionName "1.0"
//修改后
versionCode =1
versionName="1.0"

buildTypes 
//修改前
  buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

//修改后
    buildTypes {
        //根据名称查询对象不触发创建和配置
        named("release") {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )

        }

    }
dependencies 
更改所有单引号为双引号
加上groovy省略方法调用的括号 
完成 

复制代码

->git源码

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享