如何解决Jenkins集成SonarQube时npm run sonar脚本缺失错误
解决npm run sonar报错:Missing script: "sonar"
这个错误的核心原因是项目的package.json文件中没有定义名为sonar的npm脚本,解决方法如下:
方法一:在package.json中添加sonar脚本
- 打开项目根目录下的
package.json文件,找到scripts节点。 - 在
scripts中添加sonar脚本,示例如下:
"scripts": { // 保留原有脚本,比如"build": "xxx"等 "sonar": "sonar-scanner -Dsonar.projectKey=你的项目标识 -Dsonar.sources=./src -Dsonar.host.url=http://你的SonarQube地址:9000 -Dsonar.login=你的SonarQube令牌" }
参数说明:
sonar.projectKey:SonarQube中创建项目时设置的唯一Keysonar.sources:需要扫描的代码目录(根据项目结构调整)sonar.host.url:你的SonarQube服务访问地址sonar.login:在SonarQube个人设置中生成的令牌(替代账号密码更安全)
- 确保已经安装sonar-scanner:
- 全局安装:执行
npm install -g sonar-scanner - 本地安装:执行
npm install sonar-scanner --save-dev,此时脚本里的命令可以改为npx sonar-scanner ...
- 全局安装:执行
方法二:直接在Jenkins流水线中调用sonar-scanner命令
如果不想修改package.json,可在Jenkins流水线步骤中直接执行sonar-scanner命令,示例:
sonar-scanner -Dsonar.projectKey=你的项目标识 -Dsonar.sources=./src -Dsonar.host.url=http://你的SonarQube地址:9000 -Dsonar.login=你的SonarQube令牌
额外注意事项
- 确保Jenkins流水线执行
npm run sonar(或sonar-scanner命令)的步骤是在项目根目录下运行的,避免因路径错误找不到package.json或代码文件。
内容的提问来源于stack exchange,提问作者Wilfred richard
相关产品推荐
相关产品推荐

