我正在使用Gradle 7.5开发Java Spring Boot项目
它被组织成多个模块,其中大多数都包含一些测试。
今天我尝试为我的项目启用代码覆盖率报告。因此,我将jacoco插件添加到所有项目:
apply plugin: 'jacoco'
jacoco {
toolVersion = "0.8.8"
}
关于子项目我有以下任务:
jacocoTestReport {
reports {
html.enabled = true
xml.enabled = true
csv.enabled = false
}
}
'当我尝试运行任务jacocoTestReport时,构建失败,第一个模块上显示以下错误:
The value for this file collection is final and cannot be changed
我哪里做错了?
谢谢你的帮助!
我已经尝试了不同版本的gradle,并在谷歌上搜索了很多,但不幸的是,没有一个建议的解决方案适合我。
我也遇到过这个问题,但我仍然不知道如何解决。
jdk版本:
11gradle版本:7.5
jacoco。部分代码如下:
task jacocoTotalReport(type: JacocoReport, dependsOn: project.getTasksByName("testDebugUnitTest", true)) {
doFirst {
subprojects.each { project ->
def unitTestResultFile = "${project.buildDir}/jacoco/testDebugUnitTest.exec"
if (file(unitTestResultFile).exists() && executionData != null) {
executionData.setFrom(unitTestResultFile)
}
}
}
}
Error content:
> The value for this file collection is final and cannot be changed.