Android:再见 Groovy!将我们的 build.gradle 迁移到 Kotlin
原文地址:https://dev.to/rzerostern/android-adios-groovy-migrar-a-kotlin-nuestro-buildgradle-n12 原文章更新时间是在23年6月
Android:再见 Groovy!将我们的 build.gradle 迁移到 Kotlin
安卓
西班牙语
科特林
教程
我的孩子们,今天有点忙碌,不过我已经从床上爬起来了,现在我有精力给你们写几行关于我们在 Android 开发中很长时间以来看到的主题:迁移 build.gradle文件到 Kotlin。
最近,Google 的文档通知,Kotlin Script (KTS) 现在将成为依赖同步的默认语言,并且从 Android Studio 的下一版本开始,此过程将成为新应用程序中的默认过程,因此这个小教程可以帮助您迁移从 Groovy 到 KTS 的一个小项目。
什么是KTS?
KTS 是 Kotlin Script 的缩写,在 Groovy 和 Kotlin 之间迁移语言并不意味着我们要改变 Android 中库导入的核心,这将继续使用 Gradle 来完成。对于新手来说,Gradle 是一个兼容各种编程语言的应用程序构建和日常自动化工具;它是用 Java 构建的,当 Android Kit Kat 到来时(或者稍早一些),它取代了 Ant。
KT 文件和 KTS 文件之间有几个区别,其中之一是 KT 文件由 Kotlin 编译器解释,而 KTS 由 Kotlin Scripting 支持,因此它们不需要事先编译(Javascript 是你吗?),在这种情况下这就是 Gradle 将如何考虑它而无需事先编译它。
需要很长时间吗?
很多人会认为这非常困难甚至耗时,但实际上它非常简单,因为你只需要更改 build.gradle 文件中的某些语法即可实现它,所以是时候动手了火
1.更改settings.gradle
第一件事是重命名文件,将.kts扩展名添加到文件中,您将看到以下行:
include ‘:app’
在KTS中,您必须将其更改为以下内容:
include(“app”)
在这个文件中没有什么可做的,即使你想尝试它,它也会让你同步你的依赖项。现在,重要的是不要使用单引号 ('),因为 Kotlin 会将它们解释为字符并给出错误。始终尝试在字符串中使用引号 ("),这样就不会出现任何问题。
2.更改根build.gradle
现在,执行相同的操作,更改根 build.gradle 中的文件名并更改以下内容:
如果您分配了版本变量(在外部节点上),请执行以下操作。更改以下内容:
buildscript {
ext.androidGradleVersion = “8.0.1”
ext.androidKotlinPlugin = “1.8.20”
}
为了这:
buildscript {
val androidGradlePlugin by extra(“8.0.1”)
val androidKotlinPlugin by extra(“1.8.20”)
}
我们还没有完成。下面我们将有插件节点,让我们将其更改为:
plugins {
id “com.android.application:androidGradleVersion"id"com.android.library:androidGradleVersion"
id "com.android.library:androidGradleVersion"id"com.android.library:androidGradleVersion”
id “org.jetbrains.kotlin.android:$androidKotlinPlugin”
}
对此
plugins {
id(“com.android.application”) version “extra["androidGradlePlugin"]"applyfalseid("com.android.library")version"{extra["androidGradlePlugin"]}" apply false
id("com.android.library") version "extra["androidGradlePlugin"]"applyfalseid("com.android.library")version"{extra[“androidGradlePlugin”]}” apply false
id(“org.jetbrains.kotlin.android”) version “${extra[“androidKotlinPlugin”]}” apply false
}
我们将准备好该文件,现在是时候继续处理模块的 build.gradle 文件(或多个文件)了。
3.更改我们模块的build.gradle
在这种情况下,我们将更改应用程序模块之一,在这种情况下,如果您有更多模块,则必须对其余模块执行几乎相同的操作。与其他2个相同,通过在末尾添加KTS扩展名来重命名文件。然后更改以下内容:
plugins {
id ‘com.android.application’
id ‘org.jetbrains.kotlin.android’
}
为了这:
plugins {
id(“com.android.application”)
id(“org.jetbrains.kotlin.android”)
}
同样,在 Android 定义部分中,为每个元素添加等号 (=),即代替:
android {
namespace ‘mx.dev1.deadpool’
compileSdk 33
defaultConfig {
applicationId "mx.dev1.deadpool"
minSdk 24
targetSdk 33
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}
保留这一点:
android {
namespace = “mx.dev1.foo”
compileSdk = 33
defaultConfig {
applicationId = "mx.dev1.foo"
minSdk = 24
targetSdk = 33
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles (
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
}
最后,将实现的名称括在括号中,以便它们改为:
dependencies {
implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.5.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
implementation 'androidx.navigation:navigation-fragment-ktx:2.5.3'
implementation 'androidx.navigation:navigation-ui-ktx:2.5.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
剩下的是:
dependencies {
implementation(“androidx.core:core-ktx:1.8.0”)
implementation(“androidx.appcompat:appcompat:1.4.1”)
implementation(“com.google.android.material:material:1.5.0”)
implementation(“androidx.constraintlayout:constraintlayout:2.1.3”)
implementation(“androidx.navigation:navigation-fragment-ktx:2.5.3”)
implementation(“androidx.navigation:navigation-ui-ktx:2.5.3”)
implementation(“androidx.legacy:legacy-support-v4:1.0.0”)
implementation(“androidx.lifecycle:lifecycle-livedata-ktx:2.6.1”)
implementation(“androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1”)
testImplementation(“junit:junit:4.13.2”)
androidTestImplementation(“androidx.test.ext:junit:1.1.3”)
androidTestImplementation(“androidx.test.espresso:espresso-core:3.4.0”)
}
(最佳实践:目前,我将依赖项版本保留为“硬编码”,但始终将它们放在附加变量中,在本例中为步骤 2 中的附加变量。)
现在,完成后,同步您的项目。
这样,您就可以更新您的项目,使其包含 KTS,并能够享受它的好处,并保持您的应用程序更新。
我希望本教程对您有用,如果是的话,请与更多人分享,以便他们可以看到我将在这个小博客中为您带来的更多内容。
快乐编码!
更多推荐
所有评论(0)