Android项目集成SonarQube执行gradlew命令遇TaskExecutionException错误
排查Android项目SonarQube集成的
:app:sonarqube任务执行失败问题 我来帮你定位这个问题,结合你给出的错误信息,咱们从几个常见的排查方向入手:
先确认SonarQube服务状态
首先打开浏览器访问http://localhost:9000,看看SonarQube服务是不是正常启动并能访问。如果页面打不开,说明服务没启动或者端口配置不对,先把SonarQube服务正常运行起来再试。校验build.gradle配置的完整性
很多时候失败都是因为配置漏项或者路径错误:- 根项目的
build.gradle里必须添加SonarQube插件的classpath:buildscript { dependencies { // 建议使用最新稳定版,比如3.5.0.2730或更高 classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.5.0.2730" } } - app模块的
build.gradle要应用插件:apply plugin: "org.sonarqube" - 必须配置核心Sonar参数,确保路径和你的项目结构匹配:
sonarqube { properties { property "sonar.projectKey", "你的项目唯一标识" property "sonar.sources", "src/main/java" // 注意:不同AGP版本的编译class文件路径可能不同,按需调整 property "sonar.java.binaries", "build/intermediates/javac/debug/classes" property "sonar.test", "src/test/java" property "sonar.java.test.binaries", "build/intermediates/javac/debugUnitTest/classes" } }
- 根项目的
检查版本兼容性
Gradle版本和SonarQube插件版本不兼容是常见坑:- 如果你的Gradle是7.x及以上,建议使用SonarQube插件3.6+版本;
- SonarQube服务器本身也有Java版本要求,比如9.x版本需要Java 11及以上,确保你的运行环境Java版本符合要求。
深挖日志找根因
你已经加了--info和--stacktrace,仔细看日志里的根异常信息:- 如果出现
Connection refused,就是Sonar服务没启动或者URL写错; - 如果出现文件找不到的错误,就是配置的sources/binaries路径不对;
- 如果是权限相关错误,检查SonarQube的token配置(如果启用了认证的话)。
- 如果出现
清理缓存重试
Gradle缓存偶尔会搞事情,先执行:gradlew clean然后再重新运行SonarQube扫描命令。
内容的提问来源于stack exchange,提问作者Nikunj Patel
相关产品推荐
相关产品推荐

