我正在尝试了解 buildscript {}
块在 Gradle 中的工作原理。
我知道在引用外部插件时应该使用其中的 repositories {}
块:
buildscript {
repositories {
gradlePluginPortal()
}
dependencies {
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.5'
}
}
apply plugin: 'com.jfrog.bintray'
但是当 repositories {}
块中没有 buildscript {}
块时,我不明白 Gradle 在哪里查找依赖项。如果我从上面的例子中删除它,我仍然能够在没有错误的情况下构建我的项目:
buildscript {
dependencies {
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.5'
}
}
apply plugin: 'com.jfrog.bintray'
在这种情况下,Gradle 不应该抛出错误吗?
这是我的完整 build.gradle
文件:
buildscript {
dependencies {
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.5'
}
}
plugins {
id 'java'
}
apply plugin: 'com.jfrog.bintray'
group 'it.foo'
version '1.0-SNAPSHOT'
我在 Gradle 7.1.1 上运行这个 Gradle 文件,但我在 Gradle 6.1.1 上有相同的行为。
答案 0 :(得分:1)
它确实抛出了一个错误...
在 Gradle 7.1 中完全使用上面的示例
Starting a Gradle Daemon (subsequent builds will be faster)
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project 'norepo'.
> Could not resolve all artifacts for configuration ':classpath'.
> Cannot resolve external dependency com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.5 because no repositories are defined.
Required by:
project :