Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin Jacoco不生成xml文件_Kotlin_Sonarqube_Jacoco_Gradle Kotlin Dsl - Fatal编程技术网

Kotlin Jacoco不生成xml文件

Kotlin Jacoco不生成xml文件,kotlin,sonarqube,jacoco,gradle-kotlin-dsl,Kotlin,Sonarqube,Jacoco,Gradle Kotlin Dsl,我正在使用gradle与kotlin合作。现在我需要改进代码,我正在与jacoco一起使用sonarqube。但我的保险范围总是0.0%。 我的格拉德尔: plugins { kotlin("jvm") version "1.3.70" id("org.sonarqube") version "2.8" jacoco `maven-publish` } repositories { mavenLocal() jcenter() }

我正在使用gradle与kotlin合作。现在我需要改进代码,我正在与jacoco一起使用sonarqube。但我的保险范围总是0.0%。 我的格拉德尔:

plugins {
    kotlin("jvm") version "1.3.70"
    id("org.sonarqube") version "2.8"
    jacoco
    `maven-publish`
}

repositories {
    mavenLocal()
    jcenter()      
}

sonarqube {
    properties {
        property("sonar.host.url", "http://localhost:9000")
        property("sonar.language", "kotlin")
        property("sonar.sourceEncoding", "UTF-8")
        property("sonar.projectName", "Commons.Pulsar")
        property("sonar.projectKey", "Aries.kt")
        property("sonar.projectVersion", "0.0.1")
        property("sonar.sources", "src/main/kotlin/")
        property("sonar.junit.reportPaths", "src/test/kotlin/")
        property("sonar.login", "admin")
        property("sonar.password", "admin")
        property("sonar.coverage.jacoco.xmlReportPaths", "build/jacoco/test/jacocoTestReport.xml")
    }
}

java {
    withJavadocJar()
    withSourcesJar()
}

publishing {
    publications {
        create<MavenPublication>("mavenJava") {
            from(components["java"])
        }
    }
}

tasks {
    test {
        useJUnitPlatform()
        testLogging {
            events("passed", "skipped", "failed")
        }
    }
    jacocoTestReport {
        reports {
            xml.isEnabled = true
        }
    }

    compileKotlin {
        kotlinOptions.jvmTarget = "11"
    }
    compileTestKotlin {
        kotlinOptions.jvmTarget = "11"
    }
}
插件{
kotlin(“jvm”)版本“1.3.70”
id(“org.sonarqube”)版本“2.8”
杰科科
`马文出版社`
}
存储库{
mavenLocal()
jcenter()
}
声纳库贝{
性质{
属性(“sonar.host.url”http://localhost:9000")
属性(“sonar.language”、“kotlin”)
属性(“sonar.sourceEncoding”、“UTF-8”)
属性(“sonar.projectName”、“Commons.Pulsar”)
属性(“sonar.projectKey”、“Aries.kt”)
属性(“sonar.projectVersion”、“0.0.1”)
属性(“sonar.sources”、“src/main/kotlin/”)
属性(“sonar.junit.reportpath”,“src/test/kotlin/”)
属性(“sonar.login”、“admin”)
属性(“sonar.password”、“admin”)
属性(“sonar.coverage.jacoco.xmlReportPath”、“build/jacoco/test/jacoctestreport.xml”)
}
}
爪哇{
withJavadocJar()
withSourcesJar()
}
出版{
出版物{
创建(“mavenJava”){
来自(组件[“java”])
}
}
}
任务{
试验{
useJUnitPlatform()
测试记录{
事件(“已通过”、“跳过”、“失败”)
}
}
jacocoTestReport{
报告{
xml.isEnabled=true
}
}
科特林{
kotlinOptions.jvmTarget=“11”
}
compileTestKotlin{
kotlinOptions.jvmTarget=“11”
}
}
但是我注意到jacocoTestReport.xml并没有被创建。没有创建xml。
有人能帮忙吗?

您不需要指定
sonar.coverage.jacoco.xmlReportPaths
属性,只需要确保在
sonarqube
目标之前执行任务
JacoTestReport
。sonarqube gradle插件足够智能,可以根据jacoco报告检测配置。作为一个例子,我链接了,我们也做了同样的事情

一般来说,sonarqube gradle插件非常强大,如果您使用gradle的所有构建,您的sonarqube块只需如下所示

sonarqube {
    properties {
        property("sonar.host.url", "http://localhost:9000")
        property("sonar.sourceEncoding", "UTF-8")
        property("sonar.login", "admin")
        property("sonar.password", "admin")
    }
}

由于它将检测gradle配置中的其余部分,如

中所述,您无需指定
sonar.coverage.jacoco.xmlReportPaths
属性,只需确保在
sonarqube
目标之前执行任务
JacoTestReport
。sonarqube gradle插件足够智能,可以根据jacoco报告检测配置。作为一个例子,我链接了,我们也做了同样的事情

一般来说,sonarqube gradle插件非常强大,如果您使用gradle的所有构建,您的sonarqube块只需如下所示

sonarqube {
    properties {
        property("sonar.host.url", "http://localhost:9000")
        property("sonar.sourceEncoding", "UTF-8")
        property("sonar.login", "admin")
        property("sonar.password", "admin")
    }
}

由于它将从gradle配置中检测其余部分,如

中所述,将JacoTestReport块置于任务块之外是否有效?将JacoTestReport块置于任务块之外是否有效?