模块 A 是具有所有集成测试的独立模块。如果源代码和测试位于一个模块中,Maven-Jacoco-Sonar 工作正常。
由于模块 A 完全是一个不同的模块,我们无法轻松生成 jacoco 报告。因为,jacoco 无法在模块 A 中找到源来衡量报告的覆盖率。源文件都位于不同的模块中。 jacoco 需要有可用的类文件和源文件才能生成报告。我们需要在生成 jacoco 报告时将它们相应地链接到模块 A,以便可以轻松地将 jacoco-it.exec 拉到 Sonar 以显示覆盖率分析。
目前在这种情况下,
根据 jacoco 代理触发的类,但没有可用的源/类文件
如果有人有解决方案如何实现上述功能,请帮助我。这对我很有帮助。
最佳答案
尝试将以下内容添加为您的主要 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 报告时要使用的外部子模块文件。
关于maven - 如何让 jacoco 知道源/类在模块之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43452946/