gradle脚本使用Kotlin 编写
[TOC]
-
单引号 → 双引号
-
变量 → 加等号
-
对象 → 加括弧
include (":app")
include (":appLib")
classpath ("com.android.tools.build:gradle:7.0.2")
classpath ("org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.30")
tasks.register("clean", Delete::class.java){
delete(rootProject.buildDir)
}
plugins {
id ("com.android.application")
id ("kotlin-android")
}
android {
compileSdk = 30
defaultConfig {
applicationId = "com.herdin.android.gradlekts"
minSdk = 21
targetSdk = 30
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.3.2")
implementation ("androidx.appcompat:appcompat:1.3.1")
implementation ("com.google.android.material:material:1.4.0")
implementation ("androidx.constraintlayout:constraintlayout:2.0.4")
implementation (project(mapOf("path" to ":appLib")))
testImplementation ("junit:junit:4.+")
androidTestImplementation ("androidx.test.ext:junit:1.1.2")
androidTestImplementation ("androidx.test.espresso:espresso-core:3.3.0")
}
plugins {
id ("com.android.library")
id ("kotlin-android")
}
android {
compileSdk = 30
defaultConfig {
minSdk = 21
targetSdk = 30
//没有该字段
// versionCode 1
// versionName "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles ("consumer-rules.pro")
}
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.3.2")
implementation ("androidx.appcompat:appcompat:1.3.1")
implementation ("com.google.android.material:material:1.4.0")
implementation ("androidx.constraintlayout:constraintlayout:2.0.4")
testImplementation ("junit:junit:4.+")
androidTestImplementation ("androidx.test.ext:junit:1.1.2")
androidTestImplementation ("androidx.test.espresso:espresso-core:3.3.0")
}
- 1.新建buildSrc项目,配置好build.gradle.kts,归类写好应用配置
plugins {
`kotlin-dsl`
}
repositories {
google()
maven("https://maven.aliyun.com/repository/public")
}
-
2.在使用的build.gradle.kts中导入buildSrc项目(包名全路径)
import com.herdin.depend.plugin.* plugins { id ("com.android.application") id ("kotlin-android") }
-
3.替换常量
compileSdk = BuildConfig.compileSdk
defaultConfig {
applicationId = "com.herdin.android.gradlekts"
minSdk = BuildConfig.minSdk
targetSdk = BuildConfig.targetSdk
versionCode = BuildConfig.versionCode
versionName = BuildConfig.versionName
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
dependencies {
implementation (AndroidX.ktx)
implementation (AndroidX.appcompat)
implementation (AndroidX.constraintlayout)
implementation (Google.material)
// implementation (project(mapOf("path" to ":appLib")))
implementation (project(Module.app_lib))
testImplementation (AndroidTest.junit)
androidTestImplementation (AndroidTest.ext_junit)
androidTestImplementation (AndroidTest.espresso_core)
}