我已经为我的项目配置了Sonar,它运行良好,但我想在Gradle文件中创建一个自定义任务,以生成报告并直接在本地运行Sonar。
为此,我尝试创建此自定义任务:
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
时,我在本地没有得到任何新的东西。
我不知道这是否不是向声纳任务添加新属性的方式,或者添加这些新属性后我是否需要运行声纳任务。
1条答案
按热度按时间fiei3ece1#
我找到了解决方案,它将是这样的:
然后,您可以运行类似
./gradlew app:sonarLocal
的任务,它将在lint
、jacocoTestReport
和sonar
之后运行,添加一些属性以便能够将数据发送到您的本地声纳服务器。