Android lint 在 Sonarqube 中没有显示任何问题
Android lint shows up no issues in Sonarqube
我已经将我的项目设置为与 Sonarqube 一起使用。我使用 PMD 和 Checkstyle 进行 运行 测试,所有测试都成功登录到 Sonarqube 控制台。但最后一天,我决定将 Android lint 规则也添加到我的质量配置文件中。我已经激活了新配置文件和 运行 项目中的所有 Lint 规则。现在,当我 运行 项目时,它没有显示此配置文件的任何错误或问题。当我 运行 本地 lint 时,我得到大约 400 个问题。我可能缺少什么?
我在 Gradle 中使用 Sonarqube 插件,在我的服务器上使用 Sonarqube 6.2。我的Sonarqube配置如下
apply plugin: "org.sonarqube"
sonarqube {
//noinspection GroovyAssignabilityCheck
properties {
//noinspection GroovyAssignabilityCheck
property "sonar.projectName", "MyProject"
//noinspection GroovyAssignabilityCheck
property "sonar.projectKey", "Testapplication"
//noinspection GroovyAssignabilityCheck
property "sonar.projectVersion", "1.0"
//noinspection GroovyAssignabilityCheck
property "sonar.analysis.mode", "publish"
//noinspection GroovyAssignabilityCheck
property "sonar.language", "java"
//noinspection GroovyAssignabilityCheck
property "sonar.sources", "src/main/"
//noinspection GroovyAssignabilityCheck
property "sonar.profile", "FindBugs"
//noinspection GroovyAssignabilityCheck
property "sonar.host.url", "http://192.168.21.33:9000"
//noinspection GroovyAssignabilityCheck
property "sonar.login", "admin"
//noinspection GroovyAssignabilityCheck
property "sonar.password", "admin"
property "sonar.exclusions","es.miguelprietos.testapplication/R.java"
property "sonar.android.lint.report", "build/outputs/lint-results.xml"
property "sonar.binaries", "build/intermediates/classes/debug"
property "sonar.java.binaries", "build/intermediates/classes/debug"
}
}
我使用下面的命令 运行 我的 Sonar 任务(无参数)。
./gradlew sonarqube
我的 Gradle 中配置的 Lint 选项如下
lintOptions {
// set to true to turn off analysis progress reporting by lint
quiet true
// if true, stop the gradle build if errors are found
abortOnError false
// if true, only report errors
ignoreWarnings true
}
尽量不要忽略警告:
lintOptions {
// set to true to turn off analysis progress reporting by lint
quiet true
// if true, stop the gradle build if errors are found
abortOnError false
// do not ignore warnings
warningsAsErrors true
}
我认为“./gradlew lint”就是您要查找的内容。
如此处所述,它将生成丢失的 XML 报告。
请注意,它可以为每个构建变体生成报告(Debug 默认会生成 build/outputs/lint-results-debug.xml)。因此,您可以调用 lintDebug、lintRelease ...,具体取决于您的构建变体。
并根据生成的文件更改您的报告文件名。
我已经将我的项目设置为与 Sonarqube 一起使用。我使用 PMD 和 Checkstyle 进行 运行 测试,所有测试都成功登录到 Sonarqube 控制台。但最后一天,我决定将 Android lint 规则也添加到我的质量配置文件中。我已经激活了新配置文件和 运行 项目中的所有 Lint 规则。现在,当我 运行 项目时,它没有显示此配置文件的任何错误或问题。当我 运行 本地 lint 时,我得到大约 400 个问题。我可能缺少什么?
我在 Gradle 中使用 Sonarqube 插件,在我的服务器上使用 Sonarqube 6.2。我的Sonarqube配置如下
apply plugin: "org.sonarqube"
sonarqube {
//noinspection GroovyAssignabilityCheck
properties {
//noinspection GroovyAssignabilityCheck
property "sonar.projectName", "MyProject"
//noinspection GroovyAssignabilityCheck
property "sonar.projectKey", "Testapplication"
//noinspection GroovyAssignabilityCheck
property "sonar.projectVersion", "1.0"
//noinspection GroovyAssignabilityCheck
property "sonar.analysis.mode", "publish"
//noinspection GroovyAssignabilityCheck
property "sonar.language", "java"
//noinspection GroovyAssignabilityCheck
property "sonar.sources", "src/main/"
//noinspection GroovyAssignabilityCheck
property "sonar.profile", "FindBugs"
//noinspection GroovyAssignabilityCheck
property "sonar.host.url", "http://192.168.21.33:9000"
//noinspection GroovyAssignabilityCheck
property "sonar.login", "admin"
//noinspection GroovyAssignabilityCheck
property "sonar.password", "admin"
property "sonar.exclusions","es.miguelprietos.testapplication/R.java"
property "sonar.android.lint.report", "build/outputs/lint-results.xml"
property "sonar.binaries", "build/intermediates/classes/debug"
property "sonar.java.binaries", "build/intermediates/classes/debug"
}
}
我使用下面的命令 运行 我的 Sonar 任务(无参数)。
./gradlew sonarqube
我的 Gradle 中配置的 Lint 选项如下
lintOptions {
// set to true to turn off analysis progress reporting by lint
quiet true
// if true, stop the gradle build if errors are found
abortOnError false
// if true, only report errors
ignoreWarnings true
}
尽量不要忽略警告:
lintOptions {
// set to true to turn off analysis progress reporting by lint
quiet true
// if true, stop the gradle build if errors are found
abortOnError false
// do not ignore warnings
warningsAsErrors true
}
我认为“./gradlew lint”就是您要查找的内容。 如此处所述,它将生成丢失的 XML 报告。 请注意,它可以为每个构建变体生成报告(Debug 默认会生成 build/outputs/lint-results-debug.xml)。因此,您可以调用 lintDebug、lintRelease ...,具体取决于您的构建变体。
并根据生成的文件更改您的报告文件名。