美文网首页
【白水日记】使用build.gradle.kts

【白水日记】使用build.gradle.kts

作者: d2665f7588cb | 来源:发表于2021-02-23 10:09 被阅读0次

        kotlin在android项目中,不光可以代替java文件进行逻辑上的编码,在项目构建中,也可以在build.gradle中使用:grdle kotlin scripts

        首先需要将gradle的版本升级到4.10或者更高,确保androidStudio是3.0以上

        我们先更改最外层的settings.gradle文件,需要先重命名成settings.gradle.kts

    之后将

    include':app'

    改成

    include (":app")

    之后是build.gradle文件,先更改最外层工程的build,还是先重命名文件,改为build.gradle.kts

        需要更改的有两处:

    classpath"com.android.tools.build:gradle:4.0.1"

    task clean(type: Delete){

        delete rootProject.buildDir

    }

    具体更改思路:

    classpath,maven函数都改成

    classpath("xxx"),maven("xxx")即

    classpath("com.android.tools.build:gradle:4.0.1")

    classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.10")

    如果使用了maven{},需要将配置的url换成

    maven{url = uri("https://xxxxxxxxx")}

    task,稍微麻烦一点,需要改成tasks.register()

    tasks.register("clean", Delete::class.java){

        delete(rootProject.buildDir)

    }

    最后是app里的build.gradle,还是重命名成build.gradle.kts

    先看plugin

    applyplugin:'com.android.application'

    apply plugin:'kotlin-android'

    apply plugin:'kotlin-android-extensions'

    更改成

    plugins{

        id("com.android.application")

    id("kotlin-android")

    id("kotlin-android-extensions")

    }

    由于内置了kotlin()函数,甚至可以更简写成

    plugins{

        id("com.android.application")

    kotlin("android")

    kotlin("android.extensions")

    }

    之后是android域下的

    compileSdkVersion 30

    defaultConfig{

        applicationId"com.chip.kts"

        minSdkVersion 23

        targetSdkVersion 30

        versionCode1

        versionName"1.0"

        testInstrumentationRunner"androidx.test.runner.AndroidJUnitRunner"

    }

    更改成

    compileSdkVersion(30)

    defaultConfig{

        applicationId  ="com.chip.kts"

        minSdkVersion(23)

    targetSdkVersion(30)

    versionCode  =1

        versionName ="1.0"

        testInstrumentationRunner ="androidx.test.runner.AndroidJUnitRunner"

    }

    基本上都替换成了kotlin风格的赋值和函数

    buildTypes相关:

    buildTypes {

        release{

            minifyEnabledfalse

            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),

    'proguard-rules.pro'

        }

    }

    替换成

    buildTypes {

        getByName("release"){

            isMinifyEnabled =false

            proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"),

            "proguard-rules.pro")

    }

    }

    debug类似

    productFlavors相关直接替换成:

    productFlavors{

        create("product"){

            setDimension("enviroment")    }

    }

    dependencies相关麻烦一点:

    dependencies{

        implementation fileTree(dir:"libs",include: ["*.jar"])

    implementation'androidx.appcompat:appcompat:1.2.0'

    }

    更改成:

    dependencies{

        implementation(fileTree(mapOf("dir" to"libs","include" to listOf("*.jar"))))

    implementation("androidx.appcompat:appcompat:1.2.0")

    }

    总结下来

    文件名改成kts

    ' '替换成" "

    新增“()”或者使用“=”赋值

    相关文章

      网友评论

          本文标题:【白水日记】使用build.gradle.kts

          本文链接:https://www.haomeiwen.com/subject/jfxwxltx.html