猿问

使用 Gradle 时如何忽略 Jacoco 中的内部静态类

我知道如何忽略在自己的.java文件中定义的类,但不知道如何忽略内部类。


例如,我有 A 类和嵌套的 B 类:


class A {

    ...


    static class B {

        ...

    }

}

jacocoTestReport当我想使用jacoco.gradle此语法忽略文件中的它们时,不断检查覆盖范围:(setFrom部分适用于 Gradle 的更高版本,其中classDirectories = files()已弃用)


apply plugin: "jacoco"


jacoco {

    toolVersion = "0.8.3"

}


jacocoTestReport {

    afterEvaluate {

        classDirectories.setFrom(files(classDirectories.files.collect {

            fileTree(dir: it,

                    exclude: [

                            "com/example/xxx/*",

                            "com/example/xxx/A\$.*B*"

                    ])

        }))

    }

}

($必须转义,而在帖子中则不需要,因为当我使用Gradle时他使用Maven)


那么,我怎样才能忽略这个内部类呢?


喵喔喔
浏览 176回答 1
1回答

开满天机

经过多次尝试和失败,我终于找到了答案。似乎命名模式遵循已编译的 Java 类命名约定,如另一篇文章中提到的,并且不需要.外部类和内部类之间的命名。所以,它应该是这样的A$B。而且,可能会有一些.class干扰(我的猜测),所以我添加了A$B*(对于其他普通类,*不需要最后一个)。所以就变成了:"com/example/xxx/A\$B*"我希望有一些关于这种排除模式的文档。目前还没有。
随时随地看视频慕课网APP

相关分类

Java
我要回答