gradle Не удалось применить плагин [id 'org.springframework.boot'] - PullRequest
2 голосов
/ 01 февраля 2020

Я пытаюсь запустить проект весенней загрузки. У меня есть проблемы с Gradle.

gradle сборка работает нормально, но я не могу запустить gradlew

Невозможно выполнить команду: ./gradlew build &&java -jar build/libs/gs-spring-boot-docker-0.1.0.jar

Ошибка :

Failed to apply plugin [id 'org.springframework.boot']
Spring Boot plugin requires Gradle 4.10 or later. The current version is Gradle 4.9

Моя версия Gradle 6.0

Мой файл Gradle

buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.2.4.RELEASE")
        classpath('com.google.cloud.tools.jib:com.google.cloud.tools.jib.gradle.plugin:1.8.0')
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'com.google.cloud.tools.jib'


bootJar {
    baseName = 'gs-spring-boot-docker'
    version =  '0.1.0'
}

repositories {
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    implementation('org.springframework.boot:spring-boot-starter-data-jpa')
    implementation('org.springframework.boot:spring-boot-starter-web')
    implementation('org.postgresql:postgresql')
    testCompile("org.springframework.boot:spring-boot-starter-test")
}

Сборка Gradle работает нормально, ошибки нет.

1 Ответ

0 голосов
/ 03 февраля 2020

Суть оболочки Gradle в том, чтобы в проекте использовалась фиксированная версия Gradle. Это гарантирует, что вы случайно не будете использовать несовместимую версию, чем та, которую поддерживает проект. Еще одним преимуществом является то, что он автоматически загружает правильную версию, если у вас ее еще нет.

Когда вы набираете gradle (без 'w'), вы вызываете загруженный вручную дистрибутив, который вы ставите на твой путь. Это полностью пропускает часть оболочки. В вашем случае вы, очевидно, скачали версию 6 и обновили проект для работы с этой версией.

Однако вы не обновили сценарии оболочки, что вы должны были сделать вместо этого. Если вы посмотрите на gradle/wrapper/gradle-wrapper.properties, вы должны увидеть, что он установлен на 4.9, что больше не совместимо с вашим проектом.

Чтобы обновить его, вам нужно выполнить следующую команду дважды :

gradlew wrapper --gradle-version 6.1.1 --distribution-type all (при условии, что вам нужна версия 6.1.1, последняя на момент написания этой статьи.)

При первом запуске она в основном просто изменится версия в gradle-wrapper.properties (например, в 6.1.1). Если это не удается из-за того, что обертка слишком старая по сравнению с проектом, просто измените файл вручную с помощью текстового редактора.

При втором запуске Gradle запустит эту новую версию (например, 6.1.1 ) и, при необходимости, обновите сами сценарии оболочки.

Кроме того, если вы хотите запускать приложение Spring Boot во время разработки, просто запустите gradlew bootRun. Нет необходимости собирать jar и вызывать java вручную.

А также, вместо compile, используйте implementation в ваших зависимостях. Первый не рекомендуется (включая testCompile).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...