在 build.gradle 和 settings.gradle 中定义“存储库”有什么区别?

byr*_*ice 5 gradle

在我们的许多项目中,我们在 build.gradle 和 settings.gradle 中定义了存储库块,它们看起来像这样:

构建.gradle

repositories {
    maven {
        url { custom_nexus_repository }
    }
    maven {
        url { custom_repository }
    }
}
Run Code Online (Sandbox Code Playgroud)

设置.gradle

pluginManagement {
    repositories {
        maven {
            url "${custom_repository}"
            allowInsecureProtocol = true
        }
        maven {
            url "${custom_nexus_repository}"
            allowInsecureProtocol = true
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

settings.gradle在AND中定义它的目的是什么build.gradle?两者之一还不够吗?

Vad*_*dik 5

settings.gradle 中定义的插件存储库用于解析 gradle 插件。默认情况下,可以省略它们,并且将使用默认插件门户https://plugins.gradle.org。Gradle 构建系统有很多插件,您可以编写自己的插件。

插件应该在构建过程中尽早解析,这就是为什么它们位于单独的 settings.gradle 文件中,该文件在 build.gradle 之前执行。

https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:plugin-vs-build-repos