如何让jacoco知道源/类在模块之外

时间:2017-04-17 13:58:29

标签: maven jacoco

模块A是一个单独的模块,具有所有集成测试。如果源和测试位于一个模块,Maven-Jacoco-Sonar可以正常工作。

由于模块A完全是一个不同的模块,我们无法轻松生成jacoco报告。因为,jacoco无法在模块A中找到来源来衡量报告的覆盖范围。源文件都驻留在不同的模块中。 jacoco需要提供类文件和源文件才能生成报告。我们需要相应地将它们链接到模块A,同时生成jacoco报告,以便可以轻松地将jacoco-it.exec拉到Sonar以显示覆盖率分析。

目前在这种情况下, 根据jacoco代理触发的类但没有可用的源/类文件

如果有人有解决方法如何实现上述功能,请帮助我。这对我很有帮助。

2 个答案:

答案 0 :(得分:0)

尝试添加以下内容作为主要的src

 def debugTree = [fileTree(dir: "${buildDir}/intermediates/classes/debug", excludes: fileFilter),
                 fileTree(dir: "${project(":your_module_name").projectDir}/build/intermediates/classes/debug", excludes: fileFilter)]
 def mainsrc = [fileTree(dir:"${project(":your_module_name").projectDir}/src/main/java"),
                     fileTree(dir:"${project.projectDir}/src/main/java")]
 sourceDirectories = files(mainsrc)
 classDirectories = files(debugTree)

这将包括在创建jacoco报告时使用的外部子模块文件。

答案 1 :(得分:0)

尝试设置sourcesets变量。

    jacocoTestReport {
        sourceSets project(':module_name').sourceSets.main
        reports {
            xml.enabled true
//            enable html report for debugging in local env
//            html.enabled true
//            html.destination = file("${buildDir}/jacocoHtml")
        }
    }