Я выполнил поиск в Интернете по запросу «запрос плагина для плагина уже в classpath не должен включать сайт версии: stackoverflow.com» и не нашел ничего такого конкретного. Поиск "запрос плагина для плагина уже в classpath не должен включать версию" (без SO): https://discuss.gradle.org/t/error-plugin-already-on-the-classpath-must-not-include-a-version/31814, где я прочитал в ответах, например:
Я не нашел ссылки на этот вариант использования в документации плагинов Grade.
Ошибка
Файл сборки '/ Users / имя пользователя / github / OpCon / app / build.gradle 'строка: 4 Ошибка разрешения плагина [id:' com. android .application ', версия:' 3.4.1 ']
Запрос плагина для плагина уже в пути к классам не должен включать версию
, отображаемую в IntelliJ IDEA
, build.gradle (OpCon):
buildscript {
repositories {
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenCentral()
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}
repositories {
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
app/build.gradle
:
plugins {
id 'com.android.application' version '3.4.1' apply true
}
... and then other stuff
Я не понимаю, classpath 'com. android .tools.build: gradle: 3.5.2', по-видимому, не содержит 'com. android .application' ... "classpath" имеет только одно вхождение если поиск в проекте.
ДОБАВЛЕНО:
Интересно https://maven.google.com/web/index.html Я могу найти 'com. android .tools.build: gradle: 3.5.2 ветвь 'но нет' com. android .application '.
ДОБАВЛЕНО 2: Я скачал (по какой-то причине фактически было загружено довольно много файлов) по команде, взятой отсюда Как я могу загрузить указанный c артефакт Maven в одну командную строку? :
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -DrepoUrl='https://maven.google.com/' -Dartifact='com.android.tools.build:gradle:3.4.1'
нашел путь com.android.tools.build:gradle
в файловом менеджере и заглянул туда только jar:
username$ jar tvf /Users/username/.m2/repository/com/android/tools/build/gradle/3.4.1/gradle-3.4.1.jar | grep application
1115 Wed May 01 20:30:18 MSK 2019 com/android/build/gradle/internal/tasks/ApplicationIdWriterTask$applicationIdSupplier$1.class
55 Wed May 01 20:29:18 MSK 2019 META-INF/gradle-plugins/com.android.application.properties
Так что есть упоминание gradle plugin
com.android.application
в банка META-INF
.
Файл com.android.application.properties
- это один вкладыш: implementation-class=com.android.build.gradle.AppPlugin
.
Поиск в Интернете по запросу "класс реализации java" позволяет найти информацию об интерфейсах. В вики https://en.wikipedia.org/wiki/Interface_ (Java) :
Интерфейс в языке программирования Java - это абстрактный тип, используемый для определения поведения, которое должны реализовывать классы .
Так что плагин Gradle может быть интерфейсом? Как я могу копать дальше?