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

这篇具有很好参考价值的文章主要介绍了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文章来源地址https://www.toymoban.com/news/detail-566525.html

到了这里,关于Jenkins Pipline使用SonarScanner 检查 VUE、js 项目 中遇到的Bug的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue项目中视频实时播放时播放器遇到的问题和解决过程 flv.js - EasyPlayer - LivePlayer

    需要画面监控设备实时播放,支持HTTP-FLV直播流,支持其他流后续可能会更换 需要类似于安防监控多个视频实时画面同步 播放器可控制度强,完全由我们来控制播放暂停进行拉流断流 项目使用的是的vue3+ts 原本使用的video.js 但是不支持HTTP-FLV播放,改用flv.js 引入flv.js 开发问

    2024年02月01日
    浏览(46)
  • Vue项目遇到的报错:Module Error (from ./node_modules/eslint-loader/index.js)

    在运行创建的项目时出现的报错问题 Module Error (from ./node_modules/eslint-loader/index.js);具体报错如下图显示; 此问题在有时项目运行时不会报错,有时会报错; 找到根目录,在根目录下创建文件 vue.config.js 在创建的项目文件内输入 保存,重新运行便可。 初始化并重新安装 esl

    2024年02月06日
    浏览(52)
  • 使用Jenkins自动部署vue项目

    1、Jenkins简介 Jenkins是开源CICD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。 2、Jenkins安装 这里是使用docker-compose安装Jenkins,所以需要先安装docker和docker-compose 2.1、docker安装 2.2、docker-compose安装 2.3、Jenkins安装 创建docker-compose.yaml文件 创

    2024年02月06日
    浏览(42)
  • vue前端使用Jenkins自动构建项目,保姆级教程

    1. 开始前的准备工作 在阿里云控台界面搜索 容器镜像服务 添加个人版的容器镜像服务 然后在服务器上安装docker使用下面两个脚本文件 创建一个脚本 install_before_docker_env.sh 创建第二个脚本 install_docker-new.sh 在服务根目录下创建一个 install 目录将两个脚本文件放入 cd 到 instal

    2024年02月05日
    浏览(56)
  • JavaScript - 判断当前时间是否在指定区间内,例如:9:00~12:00(检查当前时间是否处于规定的两个时间段范围内),适用于 vue.js / uniapp / 微信小程序等前端项目

    例如,您想知道当前时间是否处于 9:00 ~ 12:00 时间区间内,然后根据这个判断进而实现业务逻辑。 如下示例所示, 本文提供一个函数,您只需要传入 2 个时间区间,便可得出当前时间是否在该时间区间范围内: 您可以一键复制,直接粘贴到您的项目中。 您只需要传入开始时

    2024年02月16日
    浏览(60)
  • vue3项目中使用three.js

    在vue3项目中,通过three.js使用了一段短小但完整的代码实现了实际的三维效果图。 Three.js是一个轻量级,跨平台的Javascript库,可以在浏览器上结合HTML5的canvas,SVG或者WebGL,创建和展示3D模型和动画。 Three.js允许我们在不依赖任何浏览器插件的情况下,创建一个GPU加速的3D动画场

    2024年01月23日
    浏览(48)
  • vue项目中使用EasyPlayer.js播放视频

    项目中最近需要接摄像头的监控画面,一开始用了市面上一些别的插件,发现有些视频能播放,有些不能播放,最后发现是摄像头码流的问题,很多插件都无法支持h265的编码格式。但是现在市面上稍微新点的摄像头,都是h265的编码格式。 一、插件下载 npm install copy-webpack-

    2024年02月12日
    浏览(39)
  • 使用Jenkins处理自动化遇到的问题

    先简单写下,下次再补 1.本机运行 shell 没问题, Jenkins 运行shell报错,找不到命令 本机环境变量与Jenkins运行的环境变量不一致,在系统配置里面设置Jenkins环境变量 key=PATH value = $PATH:XXX XXX表示要你要加的环境变量,有多个用冒号隔开, 最好的办法就是把mac上的环境变量复制过

    2024年02月12日
    浏览(38)
  • Unity 基础之 URP 项目创建\项目转URP Pipline

    目录 Unity 基础之 URP 项目创建项目转URP Pipline 一、简单介绍 二、创建 URP 项目 三、工程项目转 URP Unity中的一些基础知识点,方便日后查阅。 Unity游戏开发中,这里简单介绍如何创建 URP 工程项目,和把已有项目转为 URP 项目的过程,这里做简单记录,如果有不对,欢迎指出。

    2024年02月16日
    浏览(48)
  • vue2项目之swiper.js 的使用

    swiper.js 的使用 官网 API(部署在 swiper 实例中):https://www.swiper.com.cn/api/index.html 官网轮播图(查看源代码):https://www.swiper.com.cn/demo/index.html 接下来介绍怎么在 vue2 里使用 swiper.js (vue2 使用 swiper5版本) 1、安装、引入css 2、在组件中使用:引入 js 引入 html 结构 html 结构:

    2024年02月05日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包