【发布时间】:2018-03-19 20:42:51
【问题描述】:
我正在尝试添加以下任务,以便我可以在我的 java + kotlin 项目中获得一些覆盖率数据(对于它的价值,这是一个 gradle 项目)......但我收到以下错误:
“无法添加任务 ':jacocoTestReport',因为该名称的任务已存在”
这是我要添加的实际任务:
task jacocoTestReport(type: JacocoReport, dependsOn: "testDebugUnitTest") {
group = "Reporting"
description = "Generate Jacoco coverage reports for Debug build"
reports {
xml.enabled = true
html.enabled = true
}
// what to exclude from coverage report
// UI, "noise", generated classes, platform classes, etc.
def excludes = [
'**/R.class',
'**/R$*.class',
'**/*$ViewInjector*.*',
'**/BuildConfig.*',
'**/Manifest*.*',
'**/*Test*.*',
'android/**/*.*',
'**/*Fragment.*',
'**/*Activity.*'
]
// generated classes
classDirectories = fileTree(
dir: "$buildDir/intermediates/classes/debug",
excludes: excludes
) + fileTree(
dir: "$buildDir/tmp/kotlin-classes/debug",
excludes: excludes
)
// sources
sourceDirectories = files([
android.sourceSets.main.java.srcDirs,
"src/main/kotlin"
])
executionData = files("$buildDir/jacoco/testDebugUnitTest.exec")
}
现在,我在这里感到困惑的问题是,我在任何地方都找不到这个名字的另一个类......所以也许有一些时髦的事情发生了?我试过用谷歌搜索这个,但还没有真正找到任何真正帮助我解决问题的东西。
非常感谢所有帮助。我意识到这不是 java 或 kotlin 特定的问题 - 但由于它是一个联合 java + kotlin 项目,我想我会在这个问题中标记这两个问题,以防其他人看到一些细微的问题。
【问题讨论】:
-
报告
build.gradle文件的更大部分可能会很有用。此外,我建议您删除此任务的自定义定义并列出./gradlew tasks或gradle tasks以检查此类任务是否已在 gradle 的任务列表中定义。也请在此处发布。