首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“JacocoTaskExtension”不存在于jdk11、AGP 7.0.+和Gradle 7.0.+中

“JacocoTaskExtension”不存在于jdk11、AGP 7.0.+和Gradle 7.0.+中
EN

Stack Overflow用户
提问于 2021-09-03 07:55:05
回答 1查看 503关注 0票数 0

jacoco与AGP 4.0.1、gradle 6.+、but 1.8类似,但在下面升级的gradle版本中找不到抛出错误"JacocoTaskExtension“。

代码语言:javascript
复制
   Gradle 7.0.2
------------------------------------------------------------

Build time:   2021-05-14 12:02:31 UTC
Revision:     1ef1b260d39daacbf9357f9d8594a8a743e2152e

Kotlin:       1.4.31
Groovy:       3.0.7
Ant:          Apache Ant(TM) version 1.10.9 compiled on September 27 2020
JVM:          11.0.12 (Oracle Corporation 11.0.12+8-LTS-237)
OS:           Mac OS X 11.5 x86_64

复制的步骤:

我无法在kotlin类JacocoTaskExtension下面导入CodeCoveragePlugin,它在jkd1.8中运行良好,但jdk11却不行

我为什么要使用jdk11?

jdk11是agp 7.+和gradle 7.+的必修课。

我的最终目标:使它与agp7.+一起运行

代码语言:javascript
复制
package com.jitendra.sdk.android.gradle.quality.coverage

import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.plugins.JavaPlugin
import org.gradle.api.plugins.JavaPluginConvention
import org.gradle.api.tasks.testing.Test
import org.gradle.kotlin.dsl.*
import org.gradle.testing.jacoco.plugins.JacocoPluginExtension
import org.gradle.testing.jacoco.plugins.JacocoTaskExtension

@Suppress("UnstableApiUsage")
class CodeCoveragePlugin : Plugin<Project> {

    override fun apply(project: Project) = project.run {
        val extension = extensions.create("codeCoverage", CodeCoverageExtension::class)

        apply(plugin = "jacoco")

        jacoco {
            toolVersion = 0.8.7
        }
        java { createJavaTasks(sourceSets["main"], extension) }

        setupAndroidTasks(extension)
    }

    private fun Project.java(run: JavaPlugin.() -> Unit) = plugins.withType(JavaPlugin::class, run)

    private val Project.sourceSets get() = convention.getPlugin(JavaPluginConvention::class).sourceSets

    private fun Project.jacoco(run: JacocoPluginExtension.() -> Unit) = configure(run)
}
EN

回答 1

Stack Overflow用户

发布于 2021-11-10 15:02:07

我也有过类似的问题。请检查控制台中列出的堆栈跟踪好吗?

如果其中包括:

意外的SMAP行:*S KotlinDebug“

很明显,您没有使用Jacoco,如这里所讨论的的正确版本0.8.7。在我的例子中,我仍然使用以下的需要添加配置:

代码语言:javascript
复制
configurations.all {
        resolutionStrategy.eachDependency {
            if (requested.group == "org.jacoco") {
                useVersion("0.8.7")
            }
        }
    }

您可以将其放入project.run闭包中。希望它能成功。如果没有,请分享您的堆栈跟踪作为您的问题的一部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69041373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档