多模块项目集成Jacoco构建失败:无法覆盖jacoco-agent.properties
多模块Jacoco集成解决jacoco-agent.properties覆盖冲突方案
排查重复引入问题
检查所有子模块的build.gradle,确认没有单独再次应用Jacoco插件。你已经通过根项目的subprojects块全局引入了jacoco.gradle,子模块重复引入会导致多次生成jacoco-agent.properties,打包时触发覆盖冲突。修改Jacoco配置排除冗余文件打包
在jacoco.gradle中添加Jar任务的排除规则,阻止jacoco-agent.properties被打包进res.jar:tasks.withType(Jar) { exclude 'jacoco-agent.properties' }或者针对测试任务的Jacoco Agent做定向配置,仅让配置文件在测试阶段生效,不进入产物包:
test { jacoco { enabled = true agent { options = ['destfile': file("$buildDir/jacoco/test.exec").absolutePath] } } }优化subprojects配置时机
把jacoco.gradle的应用逻辑从afterEvaluate块中移出,直接放在subprojects下,减少重复执行的概率:subprojects { apply from: rootProject.file('jacoco.gradle') // 其他子模块通用配置 }清理缓存后重新构建
执行Gradle清理命令清除历史构建产生的冲突文件,再重新构建:./gradlew clean build
内容的提问来源于stack exchange,提问作者Bytecode
相关产品推荐
相关产品推荐

