问题描述
我有一个Android项目,其中包含2个Android模块和一个纯Java模块.
将android构建工具更新为com.android.tools.build:gradle:4.0.0并将gradle包装器更新为gradle-6.1.1之后,所有纯Java模块都无法再解析junit了.
与gradle文件同步时出现以下错误:
I have an Android project with 2 Android modules and one pure Java module.
After updating the android build tools to com.android.tools.build:gradle:4.0.0 and the gradle wrapper to gradle-6.1.1-all the pure Java module can not resolve junit anymore.
I get the following error while syncing with the gradle files:
Failed to resolve: org.junit.jupiter:junit-jupiter-params:5.6.2
Failed to resolve: org.junit.jupiter:junit-jupiter-engine:5.6.2
如果我尝试直接运行测试,则会得到以下输出:
If I try to run the tests directly I get the following output:
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依赖项?
How can I tell Gradle where it should look for the correct junit dependencies?
推荐答案
我发现的一个类似问题(我的问题是org.junit.jupiter:junit-jupiter-api)的解决方案是更新Java的源兼容性.测试到1.8.
The solution I have found for a similar issue (mine was with org.junit.jupiter:junit-jupiter-api) is to update the source compatibility of the tests to 1.8.
compileJava {
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
compileTestJava {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
通过这种方式,生产源仍与1.7兼容以允许Android构建.
This way the production source is still compatible with 1.7 to allow the Android build.
这篇关于无法使用Gradle 6.1.1解析junit-jupiter-params:5.6.2和junit-jupiter-engine:5.6.2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!