В моей системе (Mac) работает Gradle 6.2.2, и мне нужно, чтобы он оставался на 6.2.2 для нескольких важных проектов, которые я запускаю локально.
Я только что клонировал другой проект, поддерживаемый другими разработчиками, которые используют Gradle 6.7.1. Это приложение Spring Boot. Когда я запускаю любую из его команд Gradle в командной строке, я получаю:
> Failed to apply plugin [id 'org.springframework.boot']
> Spring Boot plugin requires Gradle 5 (5.6.x only) or Gradle 6 (6.3 or later). The current version is Gradle 6.2.2
Итак, похоже, Spring Boot хочет, чтобы я использовал Gradle 6.3+.
Мое понимание Gradle Wrapper (пожалуйста, поправьте меня, если я ошибаюсь):
- вы изменяете
build.gradle
с помощью директивыwrapper
, которая указывает, какую версию Gradle использовать для проекта - затем вы запускаете
gradle wrapper
в командной строке, и Gradle загружает и кэширует (где-то) эту версию Gradle для вас - теперь вы можете запускать свои обычные команды Gradle, но вместо
gradle
вы используетеgradlew
, и это говорит Gradle использовать версию Gradle, указанную в директиве оболочки
Если что-то из этого неверно или вводит в заблуждение, пожалуйста, начните с исправления меня! Если предположить, что это более-менее правильно...
Я добавил следующую директиву в build.gradle
проекта:
wrapper{
gradleVersion = '6.7.1'
distributionType = Wrapper.DistributionType.BIN
}
Я надеюсь, что хотя я использую 6.2.2 локально в своей системе, это скажет Gradle получить и использовать Gradle v6.7.1, который, как мы знаем, совместим с остальной сборкой проекта.
Затем я запускаю gradle wrapper
из корня проекта в своей командной строке:
$ gradle wrapper
FAILURE: Build failed with an exception.
* Where:
Build file '/Users/myuser/workspace/the-new-project/build.gradle' line: 27
* What went wrong:
An exception occurred applying plugin request [id: 'org.springframework.boot', version: '2.3.2.RELEASE']
> Failed to apply plugin [id 'org.springframework.boot']
> Spring Boot plugin requires Gradle 5 (5.6.x only) or Gradle 6 (6.3 or later). The current version is Gradle 6.2.2
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 702ms
Есть идеи, что здесь происходит? Как указать Gradle загрузить и использовать 6.7.1, но не трогать мою локальную версию 6.2.2?
./gradlew wrapper --gradle-version 6.7.1 --distribution-type bin
для конкретного проекта? Обратите внимание, что это вызывает скриптgradlew
, а не ваш глобальный двоичный файлgradle
. - person user991710   schedule 21.01.2021