【问题标题】:Can not resolve junit-jupiter-params:5.6.2 and junit-jupiter-engine:5.6.2 with Gradle 6.1.1无法使用 Gradle 6.1.1 解析 junit-jupiter-params:5.6.2 和 junit-jupiter-engine:5.6.2
【发布时间】:2020-10-09 19:33:05
【问题描述】:

我有一个包含 2 个 Android 模块和一个纯 Java 模块的 Android 项目。
将 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 依赖项?

【问题讨论】:

    标签: android gradle junit junit5


    【解决方案1】:

    我为类似问题找到的解决方案(我的是 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 构建。

    【讨论】:

      猜你喜欢
      • 2018-07-05
      • 2020-03-30
      • 2020-07-19
      • 2021-10-09
      • 1970-01-01
      • 2019-06-08
      • 2021-05-30
      • 1970-01-01
      • 2018-10-10
      相关资源
      最近更新 更多