2
0

More than 3 years have passed since last update.

The JacocoReportBase.setClassDirectories(FileCollection) method has been deprecated.

Posted at

現象

次のように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'
                 ])
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0