将SonarCloud与CodeBuild集成时出现sonar-scanner未找到错误求助
解决CodeBuild集成SonarCloud时"sonar-scanner: not found"的问题
核心原因
CodeBuild官方默认构建镜像里没有预装sonar-scanner,直接调用命令自然会提示找不到工具。
具体解决步骤
在buildspec.yml中添加安装逻辑
根据你使用的CodeBuild镜像类型,把对应安装命令放在install或pre_build阶段:- 若用Ubuntu系镜像(比如aws/codebuild/standard:6.0及以上):
phases: install: commands: - apt-get update - apt-get install -y openjdk-11-jdk sonar-scanner - 若用Amazon Linux 2镜像:
phases: install: commands: - yum install -y java-11-openjdk - # 可替换为sonar-scanner最新稳定版下载链接 - wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.8.0.2856-linux.zip - unzip sonar-scanner-cli-4.8.0.2856-linux.zip -d /opt - # 创建软链接到系统PATH,方便全局调用 - ln -s /opt/sonar-scanner-4.8.0.2856-linux/bin/sonar-scanner /usr/bin/sonar-scanner
- 若用Ubuntu系镜像(比如aws/codebuild/standard:6.0及以上):
验证安装状态
在pre_build阶段加一句验证命令,提前确认工具可用:phases: pre_build: commands: - sonar-scanner --version配置SonarCloud扫描参数
构建阶段调用sonar-scanner时,正确传入项目信息和认证token(建议把token存在CodeBuild环境变量中,避免硬编码):phases: build: commands: - sonar-scanner -Dsonar.projectKey=你的项目Key -Dsonar.organization=你的组织名 -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=$SONAR_TOKEN
内容的提问来源于stack exchange,提问作者Arhan
相关产品推荐
相关产品推荐

