Gradle 6.0对JacocoReport配置的弃用警告

28
以下是配置JacocoReportBase的Gradle任务:JacocoReportBase
task jacocoRootReport(type: JacocoReport) {
    ...
    sourceDirectories = files(subprojects.sourceSets.main.allSource.srcDirs)
    additionalSourceDirs = files(subprojects.sourceSets.main.allSource.srcDirs)
    classDirectories = files(subprojects.sourceSets.main.output)
    executionData = files(subprojects.jacocoTestReport.executionData)
    ...
}

使用./gradlew assembleDebug --warning-mode all构建时会产生以下警告:

The JacocoReportBase.setSourceDirectories(FileCollection) method has been deprecated.
This is scheduled to be removed in Gradle 6.0. Use getSourceDirectories().from(...)
at tasks_1p10s36ydq4k8rroeiucekewi$_run_closure6.doCall(.../tasks.gradle:152)

The JacocoReportBase.setAdditionalSourceDirs(FileCollection) method has been deprecated.
This is scheduled to be removed in Gradle 6.0. Use getAdditionalSourceDirs().from(...)
at tasks_1p10s36ydq4k8rroeiucekewi$_run_closure6.doCall(.../tasks.gradle:151)

The JacocoReportBase.setClassDirectories(FileCollection) method has been deprecated.
This is scheduled to be removed in Gradle 6.0. Use getClassDirectories().from(...)
at tasks_1p10s36ydq4k8rroeiucekewi$_run_closure6.doCall(.../tasks.gradle:153)

The JacocoReportBase.setExecutionData(FileCollection) method has been deprecated.
This is scheduled to be removed in Gradle 6.0. Use getExecutionData().from(...)
at tasks_1p10s36ydq4k8rroeiucekewi$_run_closure6.doCall(.../tasks.gradle:154)

如何使用Gradle 6.0兼容的语法(正如废弃警告所建议的那样)来应用这些方法的期望值(通过括号传递参数似乎不起作用):

  • getAdditionalSourceDirs().from(...)
  • getSourceDirectories().from(...)
  • getClassDirectories().from(...)
  • getExecutionData().from(...) ?
1个回答

74

Setter.from可以像这样使用:

task jacocoRootReport(type: JacocoReport) {
    ...
    sourceDirectories.from = subprojects.sourceSets.main.allSource.srcDirs
    additionalSourceDirs.from = subprojects.sourceSets.main.allSource.srcDirs
    classDirectories.from = subprojects.sourceSets.main.output
    executionData.from = subprojects.jacocoTestReport.executionData
    ...
}

3
使用classDirectories.from的解决方案也适用于Gradle Springboot项目。谢谢。 - Juliano Macedo
1
源代码中的方法弃用说明。https://github.com/gradle/gradle/blob/v5.6.4/subprojects/jacoco/src/main/java/org/gradle/testing/jacoco/tasks/JacocoReportBase.java#L108 - RenatoIvancic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接