Android项目在gradle7.0前后的配置发生了一些变化,下面先从一些简单的方便做了一些对比,后面工作中遇到其他方面的使用,再来进行补充。
其实在升级了gradle后,依然可以使用以前的旧的配置方式
buildscript {
repositories {
// 插件仓库
google()
mavenCentral()
}
// 插件依赖
dependencies {
// agp
classpath 'com.android.tools.build:gradle:3.4.3'
// kgp
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.10"
}
}
// 插件依赖
allprojects {
repositories {
google()
mavenCentral()
jcenter()
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-parcelize'
dependencies{
}
include ':app'
plugins {
// 这个插件就相当于之前的agp(Android Gradle Plugin)
id 'com.android.application' version '8.1.1' apply false
// 这个插件就相当于之前的kgp(kotlin Gradle Plugin),这也就自动确定了kotlin标准库的版本
//
id 'org.jetbrains.kotlin.android' version '1.9.0' apply false
}
plugins {
// 由于在项目的gradle配置里使用了apply false,所以不会立即使用插件,
// 这里需要显示声明在项目gradle里引入的插件
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'org.jetbrains.kotlin.kap'
id 'org.jetbrains.kotlin.plugin.parcelize'
}
dependencies {
// 这里不需要显示声明kotlin标准库的依赖,据说是使用了kgp后,agp会自动帮我们添加kotlin-stdlib的依赖
// implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.0"
implementation 'androidx.core:core-ktx:1.9.0'
}
// 插件仓库
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
// 依赖仓库
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
rootProject.name = "kkk"
include ':app'