Jenkins Pipline使用SonarScanner 检查 VUE、js 项目 中遇到的Bug

在 Jenkins 上使用 Pipline 进行集成,利用 SonarScanner 做静态代码扫描的过程中,遇到了几个问题,这里记录了一点解决办法。

在Jenkins上使用Pipline进行集成,利用SonarScanner做静态代码扫描的过程中,遇到了几个问题,这里记录了一点解决办法。

1. 脚本变量定义错误:

自动安装 SonarScanner 插件,在 Pipline 脚本中使用官方 wiki 中说明的脚本:

stage('SonarQube analysis') {// requires SonarQube Scanner 2.8+def scannerHome = tool 'SonarQube Scanner 2.8';withSonarQubeEnv('My SonarQube Server') {sh "${scannerHome}/bin/sonar-scanner"}}

但是在扫描的时候总是报错,可以看出是语法错误:

WorkflowScript: 33: Not a valid stage section definition: "def sonarqubeScannerHome = 'SonarQubeScanner2.8'". Some extra configuration is required. @ line 33, column 9.stage('SonarQubeanalysis') {^
WorkflowScript: 33: Unknown stage section "withSonarQubeEnv". Starting with version 0.5, steps in a stage must be in a steps block. @ line 33, column 9.stage('SonarQubeanalysis') {^
WorkflowScript: 33: No "steps" or "parallel" to execute within stage "SonarQubeanalysis" @ line 33, column 9.stage('SonarQubeanalysis') {^

因为在 stage 里面不是用 def 来定义变量的,于是尝试将变量定义放在脚本里,问题得到了解决:

stage('SonarQubeanalysis') {steps{script {scannerHome = tool 'SonarQubeScanner2.8'//这里这个tool是直接根据名称,获取自动安装的插件的路径}withSonarQubeEnv('SonarQube') {sh "${scannerHome}/bin/sonar-scanner sonar.projectKey=YourProjectKey sonar.sources=."}}}

2. 变量引用错误:

在修改成上面的脚本后,运行再次报错,找不到 sonar.sources 这个选项:

/yourpath/tools/hudson.plugins.sonar.SonarRunnerInstallation/SonarQubeScanner2.8/bin/sonar-scanner sonar.projectKey=YourProjectKey sonar.source=.
ERROR: Unrecognized option: sonar.source=.
INFO: 
INFO: usage: sonar-scanner [options]
INFO: 
INFO: Options:
INFO:  -D,--define <arg>     Define property
INFO:  -h,--help             Display help information
INFO:  -v,--version          Display version information
INFO:  -X,--debug            Produce execution debug output
INFO:  -i,--interactive      Run interactively

经过大神指导,发现在运行 SonarScanner 的时候,需要用‘-D’来标记(如果这两个参数是写在 sonar-scanner.properties 里就不需要了):

stage('SonarQubeanalysis') {steps{script {scannerHome = tool 'SonarQubeScanner2.8'}withSonarQubeEnv('SonarQube') {sh "${scannerHome}/bin/sonar-scanner -Dsonar.projectKey=YourProjectKey -Dsonar.sources=."}}}

3. 登录受限:

在上面的问题都解决了之后,发现登录所需要属性错误:

ERROR: Error during SonarQube Scanner execution
ERROR: Not authorized. Please check the properties sonar.login and sonar.password.
ERROR: 
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.

出现这个 bug 的时候,用的是 SonarQube5.2 版本,所以需要 Jenkins 通过账户密码登录,但是因为账号权限受限,所以无法连接到 Sonar 的服务器,所以后来更新账号密码就好了。

或者使用

stage('SonarQube Analysis') {steps {script {scannerHome = tool 'SonarScanner'}withSonarQubeEnv('sonarqube') {sh "${scannerHome}/bin/sonar-scanner -Dsonar.projectKey=xrm_xrm_xxxx -Dsonar.sources=src -Dsonar.host.url=http://192.168.1.x:9000 \-Dsonar.login=sqp_xxxxe"}}}

也可以在项目下,创建一个sonar-project.properties文件,在里面配置好参数 (推荐)

#项目的唯一标识,必填
sonar.psonar.projectKey=sonar-test-prj
项目名称
sonar.projectName=sonar-test-prj
项目版本
sonar.projectVersion=1.0
#扫描目录
sonar.sources=src
#检测语言
sonar.language=js
#扫描结果上报地址
sonar.host.url=http://127.0.0.1:9000
#登录账号
sonar.login=admin
sonar.password=xxx
#文件编码
sonar.sourceEncoding=UTF-8

参考

https://blog.csdn.net/weixin_44802620/article/details/125133724
https://blog.csdn.net/qq_44930876/article/details/128147777

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 进阶之王,MySql 性能实战源码 + 笔记 + 项目实战

随着互联网时代的兴起&#xff0c;MySQL 在数据库领域日益显现出举足轻重的地位&#xff0c;它不断扩大的用户群体就是很好的证明。在这样的背景下&#xff0c;需要越来越多的人在知识资源方面为之付出&#xff0c;将自己对 MySQL 数据库的学习过程、运维经验、个人理解等记录下…

scripy其他

持久化 # 爬回来&#xff0c;解析完了&#xff0c;想存储&#xff0c;有两种方案 ## 方案一&#xff1a;一般不用 parse必须有return值&#xff0c;必须是列表套字典形式--->使用命令&#xff0c;可以保存到json格式中&#xff0c;csv中scrapy crawl cnblogs -o cnbogs.j…

生活的意义

当前在工作中&#xff0c;但是有30分钟的等待时间&#xff0c;不知道要说点什么&#xff0c;突然想到了&#xff1a;人生的意义&#xff01;本人的一个小小的思考。由于话题太过敏感 标题就写了 "生活的意义" 每天上班日复一日&#xff0c;没有爱好。生活中除了日常…

Web3 开发指南:使用 NFTScan NFT API 构建一个 NFT 链上追踪器

对于大多数 Web3 团队来说&#xff0c;构建一个完整的链上 NFT 数据追踪系统是一项具有挑战性的任务&#xff0c;构建一个 NFT 链上追踪器更是如此。涉及到处理区块链上的智能合约和交易数据&#xff0c;并将其与外部数据源进行整合和分析工作量是十分巨大的&#xff1a; 区块链…

http请求状态码汇总

目录 常见的状态码 所有状态码汇总 1xx——临时响应信息提示&#xff1b;这些状态代码表示临时的响应。客户端在收到常规响应之前&#xff0c;应准备接收一个或多个1xx 2xx——成功 3xx——重定向&#xff1a;表示要完成请求&#xff0c;需要进一步操作。通常&#xff0c;…

《重构》:Consolidate Conditional Expression

重点看一下&#xff1a;逻辑与&#xff0c;出现多层if嵌套的情况 实际开发中&#xff0c;与门应该是最容易也是最应该被优化的。 合并后的条件代码会表述“实际上只有一次条件检查&#xff0c;只不过有多个并列条件需要检查&#xff0c;从而使这一次检查的用意更清晰。当然&am…

13. Mysql基本操作以及语法

1 数据库基础 1.1 数据库概念和术语 数据库是用于存储和管理数据的系统。它由一组相关数据的集合和用于访问、管理和操作这些数据的软件组成。数据库概念和术语包括以下内容&#xff1a; 数据库管理系统&#xff08;Database Management System&#xff0c;DBMS&#xff09;…

RocketMQ学习笔记(实操篇)

目录 基本操作 启动 测试 双主双从集群搭建 总体架构 工作流程 服务器环境 Host添加信息 防火墙配置 环境变量配置 创建消息存储路径 broker配置文件 修改启动脚本文件 服务启动 查看进程状态 查看日志 mqadmin管理工具 使用方式 命令介绍 集群监控平台搭…

基于深度学习的高精度刀具检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度刀具检测识别系统可用于日常生活中或野外来检测与定位刀具目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的刀具目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型…

HTML <meta> 标签

定义和用法 <meta> 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。 <meta> 标签位于文档的头部,不包含任何内容。<meta> 标签的属性定义了与文档相关联的名称/值对。 浏览器支持 元素ChromeIEFirefoxSafa…

HOT67-寻找旋转排序数组中的最小值

leetcode原题链接&#xff1a;寻找旋转排序数组中的最小值 题目描述 已知一个长度为 n 的数组&#xff0c;预先按照升序排列&#xff0c;经由 1 到 n 次 旋转 后&#xff0c;得到输入数组。例如&#xff0c;原数组 nums [0,1,2,4,5,6,7] 在变化后可能得到&#xff1a; 若旋转…

谈谈——互联网生活中的隐私保护

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

图形编辑器开发:参考线吸附功能,让图形自动对齐

最近我给图形编辑器增加了参照线吸附功能&#xff0c;讲讲我的实现思路。 我正在开发的图形设计工具&#xff1a; https://github.com/F-star/suika 线上体验&#xff1a; https://blog.fstars.wang/app/suika/ 效果是被移动的图形会参考周围图形&#xff0c;自动与它们进行吸附…

MySQl数据库第八课-------SQL命令查询-------主要命脉

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com —————————————————————————————— 目录 查询数据 条件 逻辑运算符 模糊查询 范围查询 in 判断空 UNION 排序 聚合 分组&#xff1a;group by —————————…

c++计算贝塞尔曲线(折线平滑为曲线)坐标方法

效果可查看上一篇博文&#xff1a;js手动画平滑曲线&#xff0c;贝塞尔曲线拟合【代码】js手动画平滑曲线&#xff0c;贝塞尔曲线拟合。https://blog.csdn.net/qiufeng_xinqing/article/details/131711963?spm1001.2014.3001.5502 代码如下&#xff1a; #include <cmath&…

FPGA实验三:状态机的设计

目录 一、实验目的 二、实验要求 三、实验代码 1.design source文件部分代码 2.测试文件代码 四、实验结果及分析 1、引脚锁定 2、仿真波形及分析 &#xff08;1&#xff09;设计好序列检测器 &#xff08;2&#xff09;仿真波形&#xff08;检测11010&#xff09; 3…

【网络系统集成】路由器实验

1.实验名称:路由器RIP协议配置 2.实验目的 在PacketTracer中进行模拟实验,配置RIP协议,验证RIP协议更新时间及路由状态变化,加深对路由器RIP协议相关知识的理解与掌握。 3.实验内容 (1)拓扑结构图 (2)ip地址分配与端口分配

使用matlab随机森林进行数据分类预测

当使用MATLAB进行随机森林数据分类预测时&#xff0c;以下是一般的步骤&#xff1a; 准备数据集&#xff1a;将数据集划分为特征和标签&#xff0c;确保数据集已经清洗并做好特征工程。 拆分数据集&#xff1a;将数据集分为训练集和测试集。训练集用于建立随机森林模型&#x…

linux - bc 命令安装

一.引言 迁移新机器后发现没有 bc 命令&#xff0c;之前 shell 脚本的一些计算逻辑会出错&#xff0c;下面快速安装一下。 二.安装 bc 请确保在 root 权限下执行该命令&#xff1a; sudo yum install bc 出现下述界面即安装成功&#xff1a; 三.测试 bc 测试下脚本里 % 的…

快速小巧的粘贴应用程序Hasty Paste

什么是 Hasty Paste? Hasty Paste 是一个快速粘贴文本并共享的地方&#xff0c;主要用于共享调试日志等&#xff0c;以帮助开发人员提供技术支持。该项目的目标是既快又小。 命令行安装 在群晖上以 Docker 方式安装。 官方的镜像没有发布在 docker hub&#xff0c;而是在 gh…