当查看之前的项目时都会在buildscript 中引入
classpath 'com.android.tools.build:gradle:7.3.0'
将其添加到classpath中。
但是,当打开最近的项目发现,buildscript消失了,对com.android.tools.build:gradle:7.3.0的引入也不见了。
但是,当apply plugin也可以正常引入。这是怎么回事呢
虽然buildscript不见了,但是多出了plugins{}。
新gradle文件
plugins {
id 'com.android.application' version '7.3.0' apply false
id 'com.android.library' version '7.3.0' apply false
id 'org.jetbrains.kotlin.android' version '1.7.10' apply false
}
旧gradle文件
buildscript {
ext.kotlin_version = '1.7.0'
repositories {
google()
mavenCentral()
gradlePluginPortal()
jcenter()
maven { url "https://jitpack.io" }
}
dependencies {
classpath 'com.android.tools.build:gradle:7.3.0'
}
}
那gradle是怎么找到plugins的呢?
在setting文件中有这么几行代码。他的作用是配置plugins的插件寻找来源,就像buildscript通过repositories指定 dependencies的来源一样。但是buildscript.repositories并不会对plugins{}产生作用。所以我们可以直接根据id引入插件。
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}