現象
次のようにJaCoCoのレポート対象から特定のクラスを除外している場合に、
jacocoTestReport {
reports {
html.enabled = true
xml.enabled = true
}
afterEvaluate {
// 自動生成されるクラスをカバレッジ集計対象から除外
classDirectories = files(classDirectories.files.collect {
fileTree(dir: it, exclude: [
'**/_*.class', '**/*DaoImpl.class'
])
})
}
Gradle 6.0で JacocoReportBase#setClassDirectories
は廃止されるよと警告されます。
The JacocoReportBase.setClassDirectories(FileCollection) method has been deprecated. This is scheduled to be removed in Gradle 6.0. Use getClassDirectories().from(...)
at build_e2otrmuro5f5yvbdc9709fstk$_run_closure1$_closure10$_closure16.doCall(/path/to/build.gradle:46)
(Run with --stacktrace to get the full stack trace of this deprecation warning.)
確認環境
- macOS 10.13.6
- Gradle 5.1
- JaCoCo 0.8.4
修正方法
警告メッセージの示す通り、 JacocoReportBase#getClassDirectories
を使って書き換えます。Gradle力が低くて、警告メッセージの通り修正するだけでも毎回ググっている気がする…
diff --git a/build.gradle b/build.gradle
index 54b418e84..be6bd6966 100644
--- a/build.gradle
+++ b/build.gradle
@@ -43,7 +43,7 @@ allprojects { subproj ->
}
afterEvaluate {
// 自動生成されるクラスをカバレッジ集計対象から除外
- classDirectories = files(classDirectories.files.collect {
+ classDirectories.from = files(classDirectories.files.collect {
fileTree(dir: it, exclude: [
'**/_*.class', '**/*DaoImpl.class'
])