模块A是一个单独的模块,具有所有集成测试。如果源和测试位于一个模块,Maven-Jacoco-Sonar可以正常工作。
由于模块A完全是一个不同的模块,我们无法轻松生成jacoco报告。因为,jacoco无法在模块A中找到来源来衡量报告的覆盖范围。源文件都驻留在不同的模块中。 jacoco需要提供类文件和源文件才能生成报告。我们需要相应地将它们链接到模块A,同时生成jacoco报告,以便可以轻松地将jacoco-it.exec拉到Sonar以显示覆盖率分析。
目前在这种情况下, 根据jacoco代理触发的类但没有可用的源/类文件
如果有人有解决方法如何实现上述功能,请帮助我。这对我很有帮助。
答案 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")
}
}