Ale*_*nov 6 java android gradle
我已经对“类路径上已有的插件的插件请求不得包含版本站点:stackoverflow.com”进行了网络搜索,但没有发现任何特别的东西。搜索“已在类路径上的插件的插件请求不得包含版本”(不带 SO)找到:https : //discuss.gradle.org/t/error-plugin-already-on-the-classpath-must -not-include-a-version/31814我读过的答案,例如:
我在 Grade 插件文档中没有找到对这个用例的任何参考。
错误
构建文件 '/Users/username/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
}
Run Code Online (Sandbox Code Playgroud)
app/build.gradle:
plugins {
id 'com.android.application' version '3.4.1' apply true
}
... and then other stuff
Run Code Online (Sandbox Code Playgroud)
我不明白,类路径 '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:我已经通过从这里获取的命令下载(由于某种原因实际上下载了很多文件)如何在一个命令行中下载特定的 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
Run Code Online (Sandbox Code Playgroud)
所以gradle plugin com.android.application在 jar 中有一个提及META-INF。
文件com.android.application.properties是一个班轮:implementation-class=com.android.build.gradle.AppPlugin.
Web 搜索“实现类 java”可找到有关接口的信息。在维基https://en.wikipedia.org/wiki/Interface_(Java) 中:
Java 编程语言中的接口是一种抽象类型,用于指定类必须实现的行为。
那么gradle插件可以是一个接口吗?我怎样才能进一步挖掘?
Ner*_*rve 15
Gradle 不允许在类路径上存在多个版本的插件。因此,如果您有一个多模块构建,则可能有多个模块声明了具有不同版本的相同插件。
要解决此问题,您需要在一个地方指定一个版本,即 settings.gradle
例如,您将以下内容放入 settings.gradle
pluginManagement {
plugins {
id 'org.springframework.boot' version "2.3.3.RELEASE"
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
}
}
Run Code Online (Sandbox Code Playgroud)
然后在单个模块 gradle 文件中,您将执行以下操作(未提及版本)
plugins {
id 'org.springframework.boot'
id 'io.spring.dependency-management'
}
Run Code Online (Sandbox Code Playgroud)
仅供记录,问题中提到的错误也可能与此消息一起显示
插件在不同的子项目中多次加载,不受支持,可能会破坏构建
对我来说,在项目级别有这个就足够了,build.gradle无需提及版本:
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.kapt) apply false
alias(libs.plugins.parcelize) apply false
alias(libs.plugins.kotlin) apply false
alias(libs.plugins.navigation) apply false
alias(libs.plugins.sonarqube) apply false
alias(libs.plugins.google.services) apply false
alias(libs.plugins.crashlytics) apply false
}
Run Code Online (Sandbox Code Playgroud)
然后在每个模块级别build.gradle都有您要应用的插件:
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin)
alias(libs.plugins.kapt)
alias(libs.plugins.parcelize)
alias(libs.plugins.realm)
alias(libs.plugins.navigation)
alias(libs.plugins.google.services)
alias(libs.plugins.crashlytics)
}
Run Code Online (Sandbox Code Playgroud)
请注意,我正在使用 Gradle 版本目录
小智 5
我遇到了同样的问题,我使用的是带有插件的 spring boot,如下所示
plugins {
id 'org.springframework.boot' version '2.2.0.RELEASE'
id 'io.spring.dependency-management' version '1.0.8.RELEASE'
id 'java'
id 'war'
}
Run Code Online (Sandbox Code Playgroud)
由于此插件存在于一个依赖项中,因此 gradle 抱怨它。我只是删除了这些依赖项,它起作用了:
plugins {
id 'java'
id 'war'
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10379 次 |
| 最近记录: |