簡體   English   中英

如何創建一個 gradle 任務在本地運行聲納

[英]How to create a gradle task to run sonar locally

我已經為我的項目配置了聲納,它工作正常,但我想在 Gradle 文件中創建一個自定義任務來生成報告並直接在本地運行聲納。

為此,我嘗試創建此自定義任務:

    task sonarLocalReport(dependsOn: ['jacocoTestReport', 'lint']) {
    group = "Reporting"
    description = "Generate Sonar reports for local check"
    doLast {
        project.extensions.getByName("sonar").ext.extraProperties = [
                "sonar.host.url": "http://localhost:9000",
                "sonar.login": "KEY"
        ]
    }}

我試圖為我的聲納任務添加額外的屬性:

    sonar {
    properties {
        property "sonar.projectKey", "App-Android"
        property "sonar.sourceEncoding", "UTF-8"
        property "sonar.projectName", "android"
        property "sonar.java.coveragePlugin", "jacoco"
        property "sonar.sources", "${project.projectDir}/src/main/java"
        property "sonar.tests", "${project.projectDir}/src/test/java"
        property "sonar.junit.reportPaths", "${project.buildDir}/test-results/testDebugUnitTest"
        property "sonar.coverage.jacoco.xmlReportPaths", "${project.buildDir}/reports/jacoco/jacocoTestReport/jacocoTestReport.xml"
        property "sonar.android.lint.reportPaths", "${project.buildDir}/reports/lint-results-debug.xml"
    }
}

當我運行我的自定義任務sonarLocalReport時,我在本地沒有得到任何新信息。

我不知道這是否不是向聲納任務添加新屬性的方法,或者我是否需要在添加這些新屬性后運行聲納任務。

我找到了解決方案,它將是這樣的:

sonar {
    properties {
        property "sonar.projectKey", "App-Android"
        property "sonar.sourceEncoding", "UTF-8"
        property "sonar.projectName", "android"
        ...
}

task sonarLocal(type: GradleBuild) {
    tasks = ['lint', 'jacocoTestReport']
    sonarLocal.finalizedBy('sonar')
    sonar {
        properties {
            property "sonar.host.url", "http://localhost:9000"
            property "sonar.login", "YOUR_KEY_GENERATED"
        }
    }
}

然后你可以像./gradlew app:sonarLocal一樣運行你的任務,它將在lintjacocoTestReportsonar之后運行,添加一些屬性以便能夠將數據發送到本地聲納服務器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM