Проблема с Gradle и Gradlew - PullRequest
       1

Проблема с Gradle и Gradlew

1 голос
/ 24 апреля 2020

У меня есть проект, в котором есть и gradle (6.3), и gradlew. Когда я делаю "./gradlew build", все в порядке. Но когда я делаю "сборку Gradle", у меня появляется следующая ошибка:

What went wrong:
A problem occurred evaluating root project ....
> Failed to apply plugin [id '...']
   > Could not create an instance of type ....
      > org.gradle.api.file.ProjectLayout.directoryProperty()Lorg/gradle/api/file/DirectoryProperty;

Есть идеи, что может заставить оболочку работать нормально, а не gradle?

Спасибо - C

1 Ответ

2 голосов
/ 24 апреля 2020

./gradlew build использует версию Gradle, отличную от используемой gradle build. Именно в этом и заключается причина использования оболочки Gradle: она будет просматривать содержимое файла gradle/wrapper/gradle-wrapper.properties, чтобы выяснить, какую версию Gradle использовать, а затем автоматически загружает и использует эту версию Gradle. Установленный Gradle версии 6.3 является более новым, чем тот, который используется скриптом gradlew (gradle wrapper). Вот почему gradle build не работает: ваш скрипт сборки несовместим с этой новой версией gradle, он работает только со старой версией, используемой скриптом gradlew.


Вы видите ошибку вызвано несовместимостью вашего скрипта сборки Gradle с более новой версией Gradle. Давайте посмотрим на первую часть:

> Could not create an instance of type ....
   > org.gradle.api.file.ProjectLayout.directoryProperty()Lorg/gradle/api/file/DirectoryProperty;

Он говорит вам, что Gradle ищет метод directoryProperty в классе ProjectLayout. Этот участник существует до версии Gradle 5 (см. https://docs.gradle.org/5.0/javadoc/org/gradle/api/file/ProjectLayout.html), но больше не присутствует в версии Gradle 6.3 (https://docs.gradle.org/current/javadoc/org/gradle/api/file/ProjectLayout.html). Поэтому API Gradle изменился, и ваш скрипт сборки больше не совместим.

Вторая часть ошибки:

> Failed to apply plugin [id '...']

говорит вам, что это произошло в реализации плагина (дано ... в удостоверении личности). Это означает, что для исправления ошибки в более новых версиях Gradle необходимо изменить плагин.

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