Gradle buildscript pluginManagement

1,407 阅读1分钟

当查看之前的项目时都会在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()
    }
}