无法使用 Gradle 6.1.1 解析 junit-jupiter-params:5.6.2 和 junit-jupiter-engine:5.6.2
Can not resolve junit-jupiter-params:5.6.2 and junit-jupiter-engine:5.6.2 with Gradle 6.1.1
我有一个 Android 项目,其中包含 2 个 Android 模块和一个纯 Java 模块。
在将 android 构建工具更新为 com.android.tools.build:gradle:4.0.0 并将 gradle 包装器更新为 gradle-6.1.1 之后,所有纯 Java 模块无法再解析 junit。
与 gradle 文件同步时出现以下错误:
Failed to resolve: org.junit.jupiter:junit-jupiter-params:5.6.2
Failed to resolve: org.junit.jupiter:junit-jupiter-engine:5.6.2
如果我尝试直接 运行 测试,我会得到以下输出:
Could not resolve all files for configuration ':domain:testCompileClasspath'.
> Could not resolve org.junit.jupiter:junit-jupiter-params:5.6.2.
Required by:
project :domain
> Cannot choose between the following variants of org.junit.jupiter:junit-jupiter-params:5.6.2:
- javadocElements
- sourcesElements
All of them match the consumer attributes:
- Variant 'javadocElements' capability org.junit.jupiter:junit-jupiter-params:5.6.2:
- Unmatched attributes:
- Found org.gradle.category 'documentation' but wasn't required.
- Found org.gradle.docstype 'javadoc' but wasn't required.
- Required org.gradle.jvm.version '7' but no value provided.
- Required org.gradle.libraryelements 'classes' but no value provided.
- Found org.gradle.status 'release' but wasn't required.
- Required org.jetbrains.kotlin.platform.type 'jvm' but no value provided.
- Compatible attributes:
- Required org.gradle.dependency.bundling 'external' and found compatible value 'external'.
- Required org.gradle.usage 'java-api' and found compatible value 'java-runtime'.
- Variant 'sourcesElements' capability org.junit.jupiter:junit-jupiter-params:5.6.2:
- Unmatched attributes:
- Found org.gradle.category 'documentation' but wasn't required.
- Found org.gradle.docstype 'sources' but wasn't required.
- Required org.gradle.jvm.version '7' but no value provided.
- Required org.gradle.libraryelements 'classes' but no value provided.
- Found org.gradle.status 'release' but wasn't required.
- Required org.jetbrains.kotlin.platform.type 'jvm' but no value provided.
- Compatible attributes:
- Required org.gradle.dependency.bundling 'external' and found compatible value 'external'.
- Required org.gradle.usage 'java-api' and found compatible value 'java-runtime'.
我如何告诉 Gradle 它应该在哪里寻找正确的 junit 依赖项?
我为类似问题找到的解决方案(我的是 org.junit.jupiter:junit-jupiter-api)是将测试的源兼容性更新为 1.8。
compileJava {
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
compileTestJava {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
这样生产源仍然与 1.7 兼容以允许 Android 构建。
我有一个 Android 项目,其中包含 2 个 Android 模块和一个纯 Java 模块。
在将 android 构建工具更新为 com.android.tools.build:gradle:4.0.0 并将 gradle 包装器更新为 gradle-6.1.1 之后,所有纯 Java 模块无法再解析 junit。
与 gradle 文件同步时出现以下错误:
Failed to resolve: org.junit.jupiter:junit-jupiter-params:5.6.2
Failed to resolve: org.junit.jupiter:junit-jupiter-engine:5.6.2
如果我尝试直接 运行 测试,我会得到以下输出:
Could not resolve all files for configuration ':domain:testCompileClasspath'.
> Could not resolve org.junit.jupiter:junit-jupiter-params:5.6.2.
Required by:
project :domain
> Cannot choose between the following variants of org.junit.jupiter:junit-jupiter-params:5.6.2:
- javadocElements
- sourcesElements
All of them match the consumer attributes:
- Variant 'javadocElements' capability org.junit.jupiter:junit-jupiter-params:5.6.2:
- Unmatched attributes:
- Found org.gradle.category 'documentation' but wasn't required.
- Found org.gradle.docstype 'javadoc' but wasn't required.
- Required org.gradle.jvm.version '7' but no value provided.
- Required org.gradle.libraryelements 'classes' but no value provided.
- Found org.gradle.status 'release' but wasn't required.
- Required org.jetbrains.kotlin.platform.type 'jvm' but no value provided.
- Compatible attributes:
- Required org.gradle.dependency.bundling 'external' and found compatible value 'external'.
- Required org.gradle.usage 'java-api' and found compatible value 'java-runtime'.
- Variant 'sourcesElements' capability org.junit.jupiter:junit-jupiter-params:5.6.2:
- Unmatched attributes:
- Found org.gradle.category 'documentation' but wasn't required.
- Found org.gradle.docstype 'sources' but wasn't required.
- Required org.gradle.jvm.version '7' but no value provided.
- Required org.gradle.libraryelements 'classes' but no value provided.
- Found org.gradle.status 'release' but wasn't required.
- Required org.jetbrains.kotlin.platform.type 'jvm' but no value provided.
- Compatible attributes:
- Required org.gradle.dependency.bundling 'external' and found compatible value 'external'.
- Required org.gradle.usage 'java-api' and found compatible value 'java-runtime'.
我如何告诉 Gradle 它应该在哪里寻找正确的 junit 依赖项?
我为类似问题找到的解决方案(我的是 org.junit.jupiter:junit-jupiter-api)是将测试的源兼容性更新为 1.8。
compileJava {
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
compileTestJava {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
这样生产源仍然与 1.7 兼容以允许 Android 构建。