找不到ID为'org.springframework.boot'的插件

时间:2019-03-13 15:03:20

标签: java spring spring-boot gradle

我想使用gradle 5.2将spring boot插件包含到我的项目中。以下是我的build.gradle的当前状态,然后是我尝试做的事情。当前,我正在尝试使用gradle 5的BOM support,但这并不是一个硬性要求。我只想知道如何解决错误

  

找不到ID为'org.springframework / boot'的插件

更新:更新了以下结构,以更好地代表我的用例。

build.gradle

apply from: 'boot.gradle'

boot.gradle

repositories {
    mavenCentral()
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'

dependencies {
    implementation platform('org.springframework.boot:spring-boot-dependencies:2.0.0.RELEASE')

    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.0.0.RELEASE'
    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-tomcat', version: '2.0.0.RELEASE'

    implementation group: 'org.springframework.boot', name: 'spring-boot-gradle-plugin', version: '2.0.0.RELEASE'
}

要重新创建我的错误,您的项目中仅需要一个文件:

Application.java

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

我试图实施基于{p>的here找到的解决方案

  

在外部脚本(我们称它们为脚本插件)中,插件ID无法   使用。而是必须使用完全限定的类名。这个   是一个已知的错误。

here对我不起作用,即使我升级到使用spring 2.0.5。

以及其他各种类似的解决方案。

2 个答案:

答案 0 :(得分:1)

您可以像下面这样尝试Spring BOM依赖项管理:

plugins {
    id 'org.springframework.boot' version '2.1.3.RELEASE'
    id 'java'
}

apply plugin: 'io.spring.dependency-management'

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

答案 1 :(得分:0)

针对我的用例的此解决方案基于Abdelghani的回答。

build.gradle

plugins {
    id 'org.springframework.boot' version '2.1.3.RELEASE'
    id 'java'
}

apply from: 'boot.gradle'

boot.gradle

repositories {
    mavenCentral()
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'

dependencies {
    implementation platform('org.springframework.boot:spring-boot-dependencies:2.0.0.RELEASE')

    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.0.0.RELEASE'
    implementation group: 'org.springframework.boot', name: 'spring-boot-starter-tomcat', version: '2.0.0.RELEASE'

    implementation group: 'org.springframework.boot', name: 'spring-boot-gradle-plugin', version: '2.0.0.RELEASE'
}

简而言之,该构建脚本需要有“ org.springframework.boot”作为apply plugin: 'org.springframework.boot'的插件才能在其他地方使用。