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

2021-02-23  本文已影响0人  d2665f7588cb

    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

' '替换成" "

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

上一篇下一篇

猜你喜欢

热点阅读