Gitlab CI执行Sonarqube-check报Gradle版本过低问题咨询
问题根因
你本地运行正常但CI报错的核心原因是CI环境使用的Gradle版本和你项目指定的版本不匹配:
- 你本地运行时用的是项目自带的Gradle Wrapper,版本为7.0.3,和项目配置完全适配
- 你当前的
.gitlab-ci.yml中直接调用gradle sonarqube命令,用的是gradle:jre11-slim镜像中预装的Gradle版本,该版本要么低于你项目要求的最低版本,要么和你引入的SonarQube Gradle插件版本不兼容。
解决方案
- 方案1(优先推荐):CI中改用项目自带的Gradle Wrapper执行任务,保证和本地环境完全一致
修改你的.gitlab-ci.yml的script字段为:script: - chmod +x gradlew - ./gradlew sonarqube - 方案2:指定CI镜像的Gradle版本和项目版本对齐
把镜像从gradle:jre11-slim改为对应版本的官方镜像:image: gradle:7.0.3-jre11-slim - 方案3:检查SonarQube版本兼容性
如果你的SonarQube服务端版本高于9.7,建议把app级build.gradle中的SonarQube插件版本升级到3.5+,避免插件和服务端版本不兼容引发的版本错误:id "org.sonarqube" version "3.5.0.2730"
额外优化建议
- 你当前配置了
tasks.sonarqube.dependsOn build,CI执行时会触发全量构建打包,可修改为tasks.sonarqube.dependsOn test,只完成编译和测试跑测即可满足Sonar扫描要求,大幅缩短CI执行时间 - 项目级build.gradle中的
jcenter()仓库已经停止维护,建议替换为mavenCentral()避免后续依赖拉取失败
内容的提问来源于stack exchange,提问作者Chirag Patel
相关产品推荐
相关产品推荐

