工件 id 解析错误

Artifact id resolved wrong

我是 gradle 的新手,我在尝试在 gradle 中添加插件时遇到了一个奇怪的问题。我知道我们必须在插件主体中为 gradle 构建指定一个 if 和版本,但我尝试添加一个带有一些 ID 和版本的插件。我的问题是..如果同一组 ID 下有多个工件,gradle 构建如何知道选择哪个工件 ID?我知道这可能是一个蹩脚的问题......但我对 gradle 还很陌生,我想知道你的意见。

您是否正在尝试应用 spring-boot-plugin

如果是这样,您尝试应用插件的项目是否有这样的构建脚本块:

buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "org.springframework.boot:spring-boot-gradle-plugin:2.0.4.RELEASE"
  }
}

apply plugin: "org.springframework.boot"

或插件关闭:

plugins {
  id "org.springframework.boot" version "2.0.4.RELEASE"
}

使用 buildscript 块,Gradle 知道在哪里可以找到插件,因为我已经为它指定了一个存储库来查找它。解析依赖路径后,它会找到并下载插件,然后将其放在类路径中以供 build.gradle 文件使用。然后只需要应用它,即 apply plugin: ....

关闭插件后,事情就有点棘手了。插件是在一个唯一的 id 下发布的,它被查找并 gradle 解析指定的版本。我不太了解这是如何完成的,但这里 new plugin mechanism 描述了 buildscript {} apply plugin: ...plugins {}.

之间的一些差异