Jacoco在Gradle7.0.2和Kotlin1.5.10上失败
今天我更新了 android studio 中的 gradle 和 kotlin 依赖项。
新版本如下:
kotlin_version = "1.5.10"
...
jacoco {
toolVersion = "0.8.6"
}
...
distributionUrl=https://services.gradle.org/distributions/gradle-7.0.2-all.zip
测试覆盖率报告任务失败并出现以下错误:
2021-05-27T16:57:49.150+0200 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ':consumerkit:testDebugUnitTestCoverage'.
2021-05-27T16:57:49.304+0200 [DEBUG] [org.codehaus.groovy.vmplugin.VMPluginFactory] Trying to create VM plugin `org.codehaus.groovy.vmplugin.v9.Java9` by checking `java.lang.Module`, but failed:
java.lang.ClassNotFoundException: java.lang.Module
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.codehaus.groovy.vmplugin.VMPluginFactory.lambda$createPlugin$0(VMPluginFactory.java:61)
at java.security.AccessController.doPrivileged(Native Method)
回答
对于科特林1.5你应该使用JaCoCo0.8.7代替0.8.6-见https://github.com/jacoco/jacoco/pull/1164和完整的更新在https://www.jacoco.org/jacoco/trunk/doc/changes.html
示例片段:
// build.gradle or build.gradle.kts
jacoco {
toolVersion = "0.8.7"
}