- 牛云
-
在项目中需要引入 dependency check 的工具来扫描相关依赖的库是否有安全漏洞等问题。由于是使用Gradle作为依赖构建工具,以及kotlin作为开发语言,所以选择了 owasp dependency check 的 Gradle 插件的方式。最后需要将报告上传到 sonar 进行展示。
在 build.gradle.kts 中添加相关的依赖:
在 sonar 的配置项中添加 dependency check 报告的路径:
在 sonar 中选择 Administration 的tab,进入 Marketplace 。在 Plugins 中搜索并安装如图的插件:
项目中使用了 Jenkins 作为CI构建工具,所以需要在其中添加一个 stage 用于将 dependency check report 上传到 sonar 中。如下:
由于 dependency check 并不是每次跑pipeline都需要,所以通过 timeout+input 的方式来手动run这一个stage。当跑完 ./gradlew dependencyCheckAnalyze 后就会生成相关的report文档,默认是html格式,可以通过配置修改。
当dependency check跑完之后,就应该执行 ./gradlew sonarqube 命令将本地report上传到sonarqube来分析。sonar的 host.url 和 login 参数既可以配置在sonar对应的properties,也可以在run命令的时候传入。这里是因为将 creds 配置到了Jenkins中,所以在Jenkins file中通过获取凭证的方式来配置。
当Jenkins CI跑完Sonar Analysis后,就可以去Sonar上查看对应的dependency check的report。如图
sonarqube软件是啥
sonarqube软件是一款静态代码质量分析工具,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,而且能够集成在IDE、Jenkins、Git等服务中,方便随时查看代码质量分析报告。 演示机型:Iphone 13&&华为P50&&小米12 系统版本:iOS 15.4&&HarmonyOS 2&&MIUI 13 APP版本:SonarQube v7.9.1 sonarqube软件是一款静态代码质量分析工具,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,而且能够集成在IDE、Jenkins、Git等服务中,方便随时查看代码质量分析报告。2023-07-16 18:30:151
sonarqube是哪个国家的
sonarqube是美国的。SonarQube 最初是作为源代码质量分析工具诞生的,然后迅速成为最常用的 DevOps 工具之一,用于获取有关编码最佳实践、约定和代码性能的建议。最近在 2018 年,添加了一些安全功能。随着时间的推移,由于应用程序安全测试 (AST) 工具的普遍采用以及对发布安全代码的重要性的更高认识,SonarQube作为安全工具的受欢迎程度也有所提高。SonarQube 是一个开源版本和几个商业产品,包括一个企业版本。SonarQube 包含一组静态分析 (SAST)规则,用于查找应用程序代码中的安全漏洞,但SonarQube 不是专门为安全分析构建的解决方案。作为参考,在 600 多条 Java 规则中,不到 50 条规则被视为安全漏洞。静态分析 (SAST) 的工作原理是查看应用程序的源代码并模拟应用程序的执行以查找可能表明存在安全风险的可疑模式。SonarQube 使用静态污点跟踪,这有助于发现一些比简单的正则表达式匹配更细微的风险,但众所周知会产生大量的误报,必须由专家手动验证才能对开发人员有所帮助。一些高级静态数据流技术在开源版本中不可用,需要付费的企业许可证订阅。2023-07-16 18:30:271
SonarQube使用方法
Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,通过插件形式可以支持包括java,C#,C/C++,PL/SQL等等二十几种编程语言的代码质量管理与检测 使用方法 指标: Bugs表示系统在运行中因为程序本身有错误而造成的功能不正常、死机、数据丢失、非正常中断等现象; 漏洞表示系统存在安全隐患容易被攻击; 坏味道表示不好的编码习惯; 重复率表示代码中存在有相同的代码,这样不利于维护。 查看检查出的错误: 查看检查后的错误信息 IDEA中配置Sonar 1、安装Sonarlint 2、配置Sonar Token:a9f8937c33a5ac39dfe459ecacc6ecceb0a4da95 配置完成后 点击SonarLint显示 Sonar的构建时间 每周五晚上11点定时构建,同时每次提交代码至SVN后在当天晚上的11点自动构建2023-07-16 18:30:401
SonarQube添加自定义规则:实践验证
Basic SonarQube SonarScanner ** sonar-scanner执行的最小参数:url、login、projectKey、sources、binaries。 写了一个 最基础 版本的自定义规则: 不允许在循环中对容器进行赋值 。忽略算法实现- -||2023-07-16 18:30:471
Sonar实践问题记录(六)webhook
sonarqube7.6 webhook 使用SonarScanner扫描结束后,会将结果提交给SonarQube,其中的Computer Engine会负责分析数据——这会消耗一定的时间。尤其是免费版本只支持一个Worker工作,不可避免会有排队现象。 项目之前的实现,会使用API /api/ce 轮询查找提交任务的结果。 显然webhook是正确的方式。 支持定制化参数,在scanner的参数里增加 sonar.analysis.* 的格式即可。下面是一个payload样例,定制化内容会在properties字段里记录。2023-07-16 18:30:541
sonarqube异味导出到excel
sonarqube异味导出到excel是格式选择excel。用sonarqube导出阻塞的一些类和问题,导出格式是excle的方式,就是有选择性的去导出一些需要的项目问题。2023-07-16 18:31:001
sonarqube属于哪个过程
SonarQube代码质量管理平台安装与使用Sonar简介Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测sonarQube能带来什么?Developers" Seven Deadly Sins1.糟糕的复杂度分布文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们,且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试2.重复显然程序中包含大量复制粘贴的代码是质量低下的sonar可以展示源码中重复严重的地方3.缺乏单元测试sonar可以很方便地统计并展示单元测试覆盖率4.没有代码标准sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写5.没有足够的或者过多的注释没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷6.潜在的bugsonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的bug7.糟糕的设计(原文Spaghetti Design,意大利面式设计)通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系可以检测自定义的架构规则通过sonar可以管理第三方的jar包可以利用LCOM4检测单个任务规则的应用情况检测耦合关于Spaghetti Design:http://docs.codehaus.org/display/SONAR/Spaghetti+Design通过sonar可以有效检测以上在程序开发过程中的七大问题SonarQube安装预置条件1.已安装Java环境2.已安装有MySQL数据库软件下载地址:http://www.sonarqube.org/downloads/下载SonarQube与SonarQube Runner中文补丁包下载:http://docs.codehaus.org/display/SONAR/Chinese+Pack1.数据库配置进入数据库命令#mysql -u root -pmysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; mysql> CREATE USER "sonar" IDENTIFIED BY "sonar";mysql> GRANT ALL ON sonar.* TO "sonar"@"%" IDENTIFIED BY "sonar";mysql> GRANT ALL ON sonar.* TO "sonar"@"localhost" IDENTIFIED BY "sonar";mysql> FLUSH PRIVILEGES;2.安装sonar与sonar-runner将下载的sonar-3.7.zip包解压至Linux某路径如/usr/local将下载的sonar-runner-dist-2.3.zip包解压某路径/usr/local添加SONAR_HOME、SONAR_RUNNER_HOME环境变量,并将SONAR_RUNNER_HOME加入PATH修改sonar配置文件编辑<install_directory>/conf/sonar.properties文件,配置数据库设置,默认已经提供了各类数据库的支持这里使用mysql,因此取消mysql模块的注释#vi sonar.properties[java] view plain copysonar.jdbc.username: sonar sonar.jdbc.password: sonar sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true # Optional properties sonar.jdbc.driverClassName: com.mysql.jdbc.Driver 修改sonar-runner的配置文件切换至sonar-runner的安装目录下,修改sonar-runner.properties根据实际使用数据库情况取消相应注释[java] view plain copy#Configure here general information about the environment, such as SonarQube DB details for example #No information about specific project should appear here #----- Default SonarQube server sonar.host.url=http://localhost:9000 #----- PostgreSQL #sonar.jdbc.url=jdbc:postgresql://localhost/sonar #----- MySQL sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8 #----- <a href="http://lib.csdn.net/base/oracle" class="replace_word" title="Oracle知识库" target="_blank" style="color:#df3434; font-weight:bold;">Oracle</a> #sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE #----- Microsoft SQLServer #sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor #----- Global database settings sonar.jdbc.username=sonar sonar.jdbc.password=sonar #----- Default source code encoding sonar.sourceEncoding=UTF-8 #----- Security (when "sonar.forceAuthentication" is set to "true") sonar.login=admin sonar.password=admin 3.添加数据库驱动除了Oracle数据库外,其它数据库驱动都默认已经提供了,且这些已添加的驱动是sonar唯一支持的,因此不需要修改如果是Oracle数据库,需要复制JDBC驱动至<install_directory>/extensions/jdbc-driver/oracle目录4.启动服务目录切换至sonar的<install_directory>/bin/linux-x86-64/目录,启动服务#./sonar.sh start 启动服务#./sonar.sh stop 停止服务#./sonar.sh restart 重启服务至此,sonar就安装好了访问http:\localhost:9000即可5.sonar中文补丁包安装中文包安装安装中文补丁包可以通过访问http:\localhost:9000,打开sonar后,进入更新中心安装或者下载中文补丁包后,放到SONARQUBE_HOME/extensions/plugins目录,然后重启SonarQube服务sonar作为Linux服务并开机自启动新建文件/etc/init.d/sonar,输入如下内容:[java] view plain copy#!/bin/sh # # rc file for SonarQube # # chkconfig: 345 96 10 # description: SonarQube system (www.sonarsource.org) # ### BEGIN INIT INFO # Provides: sonar # Required-Start: $network # Required-Stop: $network # Default-Start: 3 4 5 # Default-Stop: 0 1 2 6 # Short-Description: SonarQube system (www.sonarsource.org) # Description: SonarQube system (www.sonarsource.org) ### END INIT INFO /usr/bin/sonar $* SonarQube开机自启动(Ubuntu, 32位):sudo ln -s $SONAR_HOME/bin/linux-x86-32/sonar.sh /usr/bin/sonarsudo chmod 755 /etc/init.d/sonarsudo update-rc.d sonar defaultsSonarQube开机自启动(RedHat, CentOS, 64位):sudo ln -s $SONAR_HOME/bin/linux-x86-64/sonar.sh /usr/bin/sonarsudo chmod 755 /etc/init.d/sonarsudo chkconfig --add sonar使用SonarQube Runner分析源码预置条件已安装SonarQube Runner且环境变量已配置,即sonar-runner命令可在任意目录下执行1.在项目源码的根目录下创建sonar-project.properties配置文件以Android项目为例:[java] view plain copysonar.projectKey=android-sonarqube-runner sonar.projectName=Simple Android project analyzed with the SonarQube Runner sonar.projectVersion=1.0 sonar.sources=src sonar.binaries=bin/classes sonar.language=java sonar.sourceEncoding=UTF-8 sonar.profile=Android Lint2023-07-16 18:31:091
如何用sonarqube检查c++
sonar分析工具:sonar-runner下载sonar-runner:1.进入下载页面2.找到sonarqube-runner如图:3.点击下载下载完后,解压,将bin文件加入环境变量path中如我的路径:F:sonar-runner-2.4in将此路径加入path中配置文件,以java工程为例1.在工程根目录下新建立一个sonar-project.properties配置文件2.用记事本打开进行参数配置,最简参数配置如下# Required metadatasonar.projectKey=Monkeysonar.projectName=Monkeysonar.projectVersion=1.1# Comma-separated paths to directories with sources (required)sonar.sources=srcsonar.binaries=binclasses# Languagesonar.language=java# Encoding of the source filessonar.sourceEncoding=UTF-8说明:projectKey与projectName和工程名字一样即可sources为源码目录binaries为编译后的classes目录,这个目录要注意一下,如果都在bin下面或者目录还有很多层级才到classe目录,可以直接为sonar.binaries=bin,sonar会自动遍历所有目录language为分析的语言sourceEncoding源码编码格式4分析啦,分析也是超级简单1.打开CMD命令行2.cd进入你的工作空间,某个工程的代码路径3.敲入sonar-runner,即可进行分析2023-07-16 18:31:181
如何在linux下将sonarqube安装成中文
以SonarQube4.0为例讲解如何搭建Sonar代码质量管理平台。JAVA JDKMySQL/Oracle数据库SonarQube下载:数据库配置(MySQL)执行数据库脚本,创建数据库及用户:CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER "sonar" IDENTIFIED BY "sonar";GRANT ALL ON sonar.* TO "sonar"@"%" IDENTIFIED BY "sonar";GRANT ALL ON sonar.* TO "sonar"@"localhost" IDENTIFIED BY "sonar";FLUSH PRIVILEGES;安装Sonar Server1)将下载的sonarqube-4.0.zip包解压至D:sonarsonarqube-4.0;2)修改配置文件D:sonarsonarqube-4.0sonarconfsonar.properties,进行配置数据库设置3启动Sonar Server服务Sonar目前支持Linux/Macosx/Solaris/Windows等操作系统。以Windows 32位操作系统为例,目录切换至D:sonarsonarqube-4.0sonarinwindows-x86-32目录,运行StartSonar.bat文件启动服务。2023-07-16 18:31:251
Sonarqube报错解决方法
错误一: ERROR: Error during SonarQube Scanner execution org.sonar.java.AnalysisException: Please provide compiled classes of your project with sonar.java.binaries property 解决方法:sonar.java.binaries没写 错误二: WARN: Unable to locate "report-task.txt" in the workspace. Did the SonarScanner succedeed? ERROR: SonarQube scanner exited with non-zero code: 1 解决方法:配置一下scm和svn 错误三: ERROR: Error during SonarQube Scanner execution org.sonarsource.scanner.api.internal.ScannerException: Unable to execute SonarQube 解决方法:Jenkins上的SonarQube servers配置不正确其他错误: (1)JDK版本不对,解决方法是修改sonarqube-7.1/conf目录下的wrapper.conf文件2023-07-16 18:31:331
如何配置sonarqube账号
网页链接网页链接点击以上链接作为参考。2023-07-16 18:32:013
怎样用sonarqube对web前端代码进行分析
需要先用cppcheck分析代码生成xml格式的报告,然后用sonar-runner将该xml导入sonar,sonar的作用在这里只是展现的作用。我昨天刚刚搞明白这部分。他还是对java项目分析比较简单。sonar分析工具:sonar-runner 下载sonar-runner: 1.进入下载页面 2.找到sonarqube-runner 如图: 3.点击下载 下载完后,解压,将bin文件加入环境变量path中 如我的路径:F:sonar-runner-2.4in 将此路径加入path中 配置文件,2023-07-16 18:32:211
sonarqube windows怎么停止
有错别字有错别字有错别字有错别字有错别字有错别字有错别字有错别字有错别字有错别字有错别字2023-07-16 18:32:302
如何从数据库中获取sonarqube的bugs
方法/步骤下载sonarqube将文件sonarqube-4.5.1.zip解压到合适的目录下,解压后的文件目录结构如下启动sonar服务器,sonarqube-4.5.1/bin/windows-x86-64/StartSonar.bat由于执行环境是win8 64位机器,所以这里选择的目录是windows-x86-64。会启动jvm(jdk的安装配置这里就省略了)浏览器访问sonar地址http://localhost:9000,界面如下。至此sonar服务器可以成功启动。如果无法访问,或者jvm启动窗口一打开就自动关闭,请检查jdk环境更改数据库配置,sonarqube内部嵌入了H2数据库,所以我们上面在没有手动配置数据库相关信息的情况下也是可以正常工作的。打开配置文件sonarqube-4.5.1/conf/sonar.properties, mysql数据库链接信息是注释掉的,更改如下:#----- MySQL 5.xsonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformancesonar.jdbc.username=rootsonar.jdbc.password=rootsonar.sorceEncoding=UTF-8sonar.login=adminsonar.password=admin其中,请确认mysql已建立sonar数据库,用户名密码可以根据自身环境配置我这里username=root, password=root。这样数据库就配置成功,记得重新启动sonar服务器,这个时候需要对数据库初始化创建相应的表,可能需要一点时间中文插件安装,打开sonar页面,用管理员账号登录,用户和密码参见你在数据配置时设置的sonar.login,sonar.password。登录后进入setting->Update Center->Available Plugins。找到LOCALIZATION分类就很容易发现Chinese pack了,点击一下标题,就出现install按钮了,接下来就等着吧,会提示你重启sonar服务器。重启后,记得刷新一下浏览器。折腾了半天到现在还没有分析项目,下载sonarqube Runner,解压到合适的目录,修改sonar runner数据库配置,打开文件sonar-runner-2.4/conf/sonar-runner.properties。根据数据库使用情况进行取消相关的注释即可,同时需要添加数据库用户名和密码信息,本环境的用户名密码均为rootsonar.jdbc.username=rootsonar.jdbc.password=root为项目配置sonar runner基本信息, 在项目的根目录下创建文件sonar-project.properties,基本内容如下:# required metadata# My project------修改成你的项目名称sonar.projectKey=my:projectsonar.projectName=My projectsonar.projectVersion=1.0# path to source directories (required)# src---------修改成你的源文件夹路径,多个路径逗号隔开sonar.sources=src# path to test source directories (optional)# testDir1,testDir2--------修改成你的测试文件夹路径, 如果测试可以取消注释# tests=testDir1,testDir2# path to project binaries (optional), for example directory of Java #bytecode# binDir--------修改成你的二进制文件夹路径binaries=WebRoot/WEB-INF/classes# path to project libraries (optional)#libraries=junit.jar# advanced parameterssonar runner分析项目,为了方便使用,首先将sonar runner 分析路径增加到环境变量Path下,以方便在任何路径下都可以调用此命令。在cmd环境下,切换到项目执行目录下,然后执行sonar-runner.bat。将会分析你当前目下项目代码,慢慢等候,看到success了。就可以刷新网页查看结果了。2023-07-16 18:32:401
sonarqube scaner docker 扫描失败的原因及解决方案
根源:scanner的container网络跟sonarqube server不在一个网络内 解决:--network=host 参数 https://stackoverflow.com/questions/32097414/error-sonar-server-http-localhost9000-can-not-be-reached 根源: java中缺少sonar.java.binaries 必选参数 解决:使用 mvn compile 编译源码,并在sonar-project.properties中添加参数 其他语言请参考 https://docs.sonarqube.org/latest/analysis/languages/overview/ 获取必选参数信息。 根源: jvm默认配置太小,内存不足 解决:设置环境变量 SONAR_SCANNER_OPTS="-Xmx512m" 或者更大。 docker的解决方案为 根源:server 端ES 内存不足, 因为ES默认的heap size为2GB,而Docker的limit也是2GB。 解决:加大内存,docker Desktop端(Mac 与windows端)需要配置docker的最大内存超过4GB。或者限制ES的Heap size到750MB。 https://github.com/10up/wp-local-docker/issues/6#issue-211554733 根源:scanner无法在工程的根目录上找到sonar-project.properties文件,尽管该文件存在,但是docker -v挂在目录时不支持相对路径。 解决:将docker run -v...的运行脚本也放到工程根目录下,将当前目录挂载到/usr/src:2023-07-16 18:32:471
如何去除sonarqube自动扫描
sonar分析工具:sonar-runner下载sonar-runner:1.进入下载页面2.找到sonarqube-runner如图:3.点击下载下载完后,解压,将bin文件加入环境变量path中如我的路径:F:sonar-runner-2.4in将此路径加入path中配置文件,以java工程为例1.在工程根目录下新建立一个sonar-project.properties配置文件2.用记事本打开进行参数配置,最简参数配置如下# Required metadatasonar.projectKey=Monkeysonar.projectName=Monkeysonar.projectVersion=1.1# Comma-separated paths to directories with sources (required)sonar.sources=srcsonar.binaries=binclasses# Languagesonar.language=java# Encoding of the source filessonar.sourceEncoding=UTF-8说明:projectKey与projectName和工程名字一样即可sources为源码目录binaries为编译后的classes目录,这个目录要注意一下,如果都在bin下面或者目录还有很多层级才到classe目录,可以直接为sonar.binaries=bin,sonar会自动遍历所有目录language为分析的语言sourceEncoding源码编码格式4分析啦,分析也是超级简单1.打开CMD命令行2.cd进入你的工作空间,某个工程的代码路径3.敲入sonar-runner,即可进行分析2023-07-16 18:32:541
sonar+Jenkins注意的关键点或坑及sonar规则忽略或修改
1、严格按照下面链接安装sonarscanner-for-jenkins https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-jenkins/ 2、在Execute SonarQube Scanner下的Analysis properties 填写如下信息:这里提一下自己遇到的坑,就是构建时出现: 也就是它提示我的node 版本是8,它仅支持10及以上, 因此我在 Execute SonarQube Scanner 前面加一段 Execute shell 并在里面写nvm use 12.22.6,发现还是报同样的错误,后来搜索相关资料发现这篇文章: https://community.sonarsource.com/t/javascript-and-or-typescript-rules-were-not-executed-only-node-js-v8-or-later-is-supported-got-v6-15-0/17231 和 https://community.sonarsource.com/t/skip-this-error-error-only-node-js-v8-or-later-is-supported-got-v0-10-32/27760 这篇文章 发现原来sonar支持单独设置node脚本,也就是上面的 sonar.nodejs.executable=/root/.nvm/versions/node/v12.22.6/bin/node 设置成功后完美解决。 3、多个项目都配置好并成功后,后来发现其中一个项目死活不成功,一直报 刚开始以为是 pagination.spec.js 文件循环引用问题,便使用 sonar.exclusions=test/**,node_modules/** 排除,发现还不行,于是google、stackoverflow、 sonarqube的issues 均没有找到答案,最后无奈只好在sonarqube源码找 Not indexing due to symlink loop 语句比如提示 11:41 error Refactor this function to reduce its Cognitive Complexity from 21 to the 20 allowed sonarjs/cognitive-complexity 在 .eslintrc.js 中添加 具体可以参考 https://github.com/SonarSource/eslint-plugin-sonarjs/blob/master/docs/rules/cognitive-complexity.md 等一系列进行修改 由于SonarQube默认的内置规则无法直接修改,我们需要复制它的规则后再进行修改,修改完后设置规则为默认即可 可以连接配置好的SonarQube服务即可: 在SonarQube中生成令牌 在SonarLint中配置 1、如果发现google后没有任何线索,建议直接看引起报错的源码,也许可以从中找到线索。ps:之前也遇到过类似的问题,就是遇到报错,直接在源码里搜索日志,发现线索并解决了; 2、遇到问题与相关人员一起交流探讨,也许会立马找到思路; 3、多尝试和实践,也许你会发现一片新天地;2023-07-16 18:33:021
如何分析sonarqube执行结果
需要先用cppcheck分析代码生成xml格式的报告,然后用sonar-runner将该xml导入sonar,sonar的作用在这里只是展现的作用。我昨天刚刚搞明白这部分。他还是对java项目分析比较简单。sonar分析工具:sonar-runner 下载sonar-runner: 1.进入下载页面 2.找到sonarqube-runner 如图: 3.点击下载 下载完后,解压,将bin文件加入环境变量path中 如我的路径:F:sonar-runner-2.4in 将此路径加入path中 配置文件,2023-07-16 18:33:101
sonarqube+sonar-scanner-engine扫描引擎主要执行步骤
请求/api/plugins/installed获取已安装的插件 org.sonar.scanner.bootstrap.ScannerPluginInstaller org.sonar.scanner.bootstrap.ScannerPluginInstaller org.sonar.core.platform.PluginLoader org.sonar.scanner.bootstrap.ExtensionInstaller 请求/api/qualityprofiles/search获取规则配置 org.sonar.scanner.repository.DefaultQualityProfileLoader 请求/api/rules/search获取每个规则配置下对应的可用的规则 org.sonar.scanner.rule.DefaultActiveRulesLoader 从插件扩展类中查找实现org.sonar.api.batch.sensor.Sensor接口的执行类 org.sonar.scanner.bootstrap.ScannerExtensionDictionnary org.sonar.scanner.sensor.SensorWrapper 问题记录写入pb文件 org.sonar.java.SonarComponents org.sonar.java.JavaIssue ...... org.sonar.scanner.protocol.output.ScannerReportWriter 压缩为zip包 org.sonar.scanner.report.ReportPublisher 以application/x-protobuf协议上传2023-07-16 18:33:171
sonarqube同一个检查语言,怎么支持多个插件
进入Sonar配置界面在Sonar Server首页面,选择菜单“配置”,进入配置页面。2安装插件在配置页面中点击“更新中心”->“Avaliable Plugins”即可看到可安装的插件,点击某个插件(如Emma),在展开的插件描述信息中点击“Install”完成插件的安装,插件只有在Sonar Server重启后生效。3重启Sonar Server运行启动Sonar Server的批处理脚本,重启Sonar Server.2023-07-16 18:33:381
如何导入Sonar代码扫描规则
如何导入Sonar代码扫描规则和设置默认代码扫描规则。工具/原料SonarQube方法/步骤1进入配置页面点击“质量管理”菜单 ,在质量管理页面点击右上角“恢复设置”。2导入代码扫描规则在“恢复设置”对话框中点击“选择文件”按钮,选择代码扫描规则XML文件,再点击“恢复按钮”。3设置默认代码扫描规则点击刚导入的代码扫描规则右边的“设为默认”链接,可将此规则设置为默认的Java代码扫描规则。2023-07-16 18:33:461
sonarQube连接mysql启动失败了 求助
onar安装完成,在修改sonarqube-4.4/conf/sonar.properties配置文件时,sonar.jdbc.url: jdbc:mysql://localhost:8180/sonaruseUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true在这mysql的路径设置,使用localhost,就可以启动sonar,换成10.5.155.100就不能启动sonar,看了一下这ip就是本机安装mysql的ip,这是怎么回事2023-07-16 18:33:531
Jacoco和SonarQube的测试覆盖率不一样
https://stackoverflow.com/questions/57601376/sonarqube-jacoco-coverage-discrepancies Jacoco is based on bytecode analysis. The exec file is combined with the class files to get the final code coverage values. The problem in my case was that the bytecode generated by Eclipse compiler for Java (for Jacoco eclipse plug-in) and that produced by Javac (during analysis on sonar runner) were different. Hence, the code coverage values generated by both tools were different. https://stackoverflow.com/questions/25376512/code-coverage-percentage-values-in-jacoco-eclipse-plug-in-and-sonarqube-are-diff ` I was able figure out what was wrong with the setup that we were using, by looking through our SonarQube analysis deeper and comparing package by package what was being analyzed. SonarQube was analyzing the whole repository, and the default report for coverage that was displayed was reflecting using not only the jacoco.xml but also looking at some code from other types. To see the accurate code coverage, I had to change where we were looking in SonarQube"s analysis, to the directory which housed the Java code exclusively thus aligning the coverage percentages between the two services. Share `2023-07-16 18:34:051
sonarqube 分析C++ 代码时,为什么无法检测出问题
sonarqube这个插件只是分析已经生成的报告,并非去检查代码,比如配置的规则中有cppcheck库的,那么运行sonar-runner时只会读取你用cppcheck检查后生成的问题报告。2023-07-16 18:34:121
sonarqube 能检查内存泄漏吗
下载sonarqube将文件sonarqube-4.5.1.zip解压到合适的目录下,解压后的文件目录结构如下启动sonar服务器,sonarqube-4.5.1/bin/windows-x86-64/StartSonar.bat由于执行环境是win8 64位机器,所以这里选择的目录是windows-x86-64。会启动jvm(jdk的安装配置这里就省略了)浏览器访问sonar地址http://localhost:9000,界面如下。至此sonar服务器可以成功启动。如果无法访问,或者jvm启动窗口一打开就自动关闭,请检查jdk环境2023-07-16 18:34:191
sonarqube连接数据库的作用是什么?
下载sonarqube 将文件sonarqube-4.5.1.zip解压到合适的目录下2023-07-16 18:34:273
Error during SonarQube Scanner execution
错误信息: jenkins执行报错 解决方法:2023-07-16 18:34:341
sonarqube安装好后,使用sonar-runner出错?
Cause by 提示你没有配置几个属性,key name version soures 重新百度看看你配置文件吧 举例sonar.sourceEncoding=UTF-8 sonar.projectKey=testsonar.projectName=testsonar.projectVersion=1.0 sonar.sources=. sonar.language=java2023-07-16 18:34:432
sonarqube 分析C++ 代码时,为什么无法检测出问题
有些错误是编译器无法检查的编译器只能检查你语法是不是错误但无法检查你算法是否错误看来可能你中间有哪步有严重错误了,以至于系统要强制关闭程序,好好检查一下吧2023-07-16 18:34:501
sonarqube4.5.6为什么扫描代码无法检测出问题
有些错误是编译器无法检查的 编译器只能检查你语法是不是错误但无法检查你算法是否错误 看来可能你中间有哪步有严重错误了,以至于系统要强制关闭程序,好好检查一下吧2023-07-16 18:35:091
sonarqube怎么自定义Java代码规则
如何导入Sonar代码扫描规则和设置默认代码扫描规则。工具/原料SonarQube方法/步骤1进入配置页面点击“质量管理”菜单 ,在质量管理页面点击右上角“恢复设置”。2导入代码扫描规则在“恢复设置”对话框中点击“选择文件”按钮,选择代码扫描规则XML文件,再点击“恢复按钮”。3设置默认代码扫描规则点击刚导入的代码扫描规则右边的“设为默认”链接,可将此规则设置为默认的Java代码扫描规则。2023-07-16 18:35:171
maven整合sonarqube A required class is missing: Lorg/apache/maven/rtinfo/RuntimeInformation;
RuntimeInformation丢失,看看有没有这个类,如果没有的话,要么是相关jar包没引入,要么就是引入的这个版本的jar包没有这个类,那么就是版本的问题了2023-07-16 18:35:241
怎么编译运行从github上下载下来的maven项目源码?(我想调试运行的是sonarqube的源码)跪求大神orz
maven 编译命令从别处拷贝来的maven项目,有时候会出现不能debug关联的情况,即按住ctrl键后不能跳转到相应的类或方法,这是需要eclipse环境生成 Eclipse 项目文件的。可以在cmd命令窗口下进入到maven项目包含pom.xml文件的目录下,运行 mvn eclipse:eclipse 命令即可,如果还不行,可使用mvn compile :编译源代码 命令。--------------------------------------------------------------------------------------------------------------------------------下面是一些maven的常用命令:Maven2 的运行命令为 : mvn ,常用命令为 :mvn archetype:create :创建 Maven 项目mvn compile :编译源代码mvn test-compile :编译测试代码mvn test : 运行应用程序中的单元测试mvn site : 生成项目相关信息的网站mvn clean :清除目标目录中的生成结果mvn package : 依据项目生成 jar 文件mvn install :在本地 Repository 中安装 jarmvn eclipse:eclipse :生成 Eclipse 项目文件生成项目建一个 JAVA 项目 : mvn archetype:create -DgroupId=com.demo -DartifactId=App建一个 web 项目 : mvn archetype:create -DgroupId=com.demo -DartifactId=web-app -DarchetypeArtifactId=maven-archetype-webapp生成 Eclipse 项目普通 Eclipse 项目执行 : mvn eclipse:eclipseEclipse WTP 项目执行 : mvn eclipse:eclipse –Dwtpversion=1.0更详细的,自己百度搜索 maven 编译,学习一下吧2023-07-16 18:35:341
为什么我的sonarqube没有显示注释率,7.7版本和7.2版本都试过了,求解各位大佬???
我为什为什么我的sonar去ube没有显示助了?卧槽,这个东西说了一大堆的英语2023-07-16 18:35:411
linux sonar 怎么启动
以SonarQube4.0为例讲解如何搭建Sonar代码质量管理平台。JAVA JDKMySQL/Oracle数据库SonarQube下载:http://www.sonarqube.org/downloads/数据库配置(MySQL)执行数据库脚本,创建数据库及用户:CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER "sonar" IDENTIFIED BY "sonar";GRANT ALL ON sonar.* TO "sonar"@"%" IDENTIFIED BY "sonar";GRANT ALL ON sonar.* TO "sonar"@"localhost" IDENTIFIED BY "sonar";FLUSH PRIVILEGES;安装Sonar Server1)将下载的sonarqube-4.0.zip包解压至D:sonarsonarqube-4.0;2)修改配置文件D:sonarsonarqube-4.0sonarconfsonar.properties,进行配置数据库设置3启动Sonar Server服务Sonar目前支持Linux/Macosx/Solaris/Windows等操作系统。以Windows 32位操作系统为例,目录切换至D:sonarsonarqube-4.0sonarinwindows-x86-32目录,运行StartSonar.bat文件启动服务。2023-07-16 18:35:481
Sonar扫描的NPE问题解决方案
Sonar扫描的NPE问题 report this on Sonar Community: Commons-lang StringUtils isNotBlank method still raise NPE 有人遇到了相同的问题,官方猜测是没有正确的配置 sonar.java.libraries SonarQube上的确提示—— 手动验证,将commons-lang3-3.7.jar添加到 sonar.java.libraries 参数里,问题解决。 下一步需要处理的方式—— 将项目的依赖都复制到固定的目录,然后将这个目录传递给 sonar.java.libraries 参数。 dependency:copy-dependencies 的官方用法。 理论上这样就可以解决这个问题,需要验证的是多模块的项目的依赖是否可以全部正确复制到正确的目录下。2023-07-16 18:36:021
snoar 配了环境变量还是提示不是内部命令
楼主后面知道答案了吗?我也遇到这个问题了2023-07-16 18:36:113
如何解决sonar项目权限,只对当前提交用户有
何使用Sonar Runner进行代码扫描 自:中国jingyan.baidu中国/article/e漆505漆f贰a贰ae吧eebc9依a吧9三5.html 描述安装SonarQube四.0服务前提何使用Sonar Runner贰.三进行代码扫描 工具/原料 Sonar Runner 贰.三 /步骤 依 安装Sonar Runner 解压附件sonar-runner-贰.三.rar任意目录便安装包解压D:sonarsonar-runner-贰.三 贰 配置环境变量 依) 打系统属性框点击环境变量进入环境变量框 贰) 系统变量(S)点击新建(W)...,编辑系统变量框添加SONAR_RUNNER_HOME变量 三) 系统变量(S)找Path点击编辑(I)...,编辑系统变量框变量值(V):输入框内容未尾添加、;%SONAR_RUNNER_HOME%in;点确定 四) 依点击环境变量系统属性框确定保存刚添加环境变量 5) 按图所示命令进行验证环境变量否配置功展示结图所示则表示配置功 三 配置Sonar Runner 编辑D:sonarsonar-runner-贰.三confsonar-runner.properties配置指定Sonar Server址、数据库URL、数据库用户名及密码、Sonar Server用户名及密码 四 配置sonar-project.properties 项目源码根目录创建sonar-project.properties配置文件面HubAirl项目例进行讲解 5 代码扫描 切换项目源码根目录执行命令:sonar-runner 扫描结现EXCUTION SUCCESS字则表示代码扫描功 陆 查看代码扫描结 查看代码扫描结址:中国依漆贰.贰陆.三.依依0:9000/ 注:处依漆贰.贰陆.三.依依0SonarQube服务所服务器IP址 漆 补充说明 实际应用程能遇报JVM空间够或内存溢情况解决问题按文所示通修改批处理脚本D:sonarsonar-runner-贰.三sonar-runner.bat文件即 根据实际情况并参照图所示修改sonar-runner.bat文件第漆漆行 注意事项 执行sonar-runner命令提示"sonar-runner"内部或外部命令运行程序或批处理文件检查环境变量否配置2023-07-16 18:36:181
sonarqube server 服务器上的地址是多少
一、安装篇1.下载好sonarqube后,解压打开bin目录,启动相应OS目录下的StartSonar。如本文演示使用的是win的64位系统,则打开 D:sonarsonarqube-5.3sonarqube-5.3inwindows-x86-64StartSonar.bat2.启动浏览器,访问http://localhost:9000,如出现下图则表示安装成功。二、配置篇1.打开mysql,新建一个数据库。2.打开sonarqube安装目录下的D:sonarsonarqube-5.3sonarqube-5.3confsonar.properties文件3.在mysql5.X节点下输入以下信息sonar.jdbc.url=jdbc:mysql://172.16.30.228:3306/qjfsonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformancesonar.jdbc.username=gmsdsonar.jdbc.password=gmsdtradesonar.sorceEncoding=UTF-8sonar.login=adminsonar.password=adminurl是数据库连接地址,username是数据库用户名,jdbc.password是数据库密码,login是sonarqube的登录名,sonar.password是sonarqube的密码4.重启sonarqube服务,再次访问http://localhost:9000,会稍微有点慢,因为要初始化数据库信息5.数据库初始化成功后,登录6.按照下图的点击顺序,进入插件安装页面7.搜索chinese Pack,安装中文语言包8.安装成功后,重启sonarqube服务,再次访问http://localhost:9000/,即可看到中文界面三、使用篇1.打开D:sonarsonar-scanner-2.5confsonar-runner.properties文件2.mysql节点下输入以下信息sonar.jdbc.url=jdbc:mysql://172.16.30.228:3306/qjfsonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformancesonar.jdbc.username=gmsdsonar.jdbc.password=gmsdtrade注意:如果测试项目与服务器不在同一台机子,则需要添加服务器的IP:#----- Default SonarQube serversonar.host.url=http://XXX.XXX.XXX.XXX:90003.配置环境变量a.新建变量,name=SONAR_RUNNER_HOME。value=D:sonarsonar-scanner-2.5b.打开path,输入%SONAR_RUNNER_HOME%in;c.sonar-runner -version,出现以下信息,则表示环境变量设置成功2023-07-16 18:36:501
如何设置sonarqube的jvm
1 数据库配置(MySQL) 执行数据库脚本,创建数据库及用户: CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER "sonar" IDENTIFIED BY "sonar"; GRANT ALL ON sonar.* TO "sonar"@"%" IDENTIFIED BY "sonar"; GR...2023-07-16 18:36:571
sonarqube 分析C++ 代码时,为什么无法检测出问题
需要先用cppcheck分析代码生成xml格式的报告,然后用sonar-runner将该xml导入sonar,sonar的作用在这里只是展现的作用。 我昨天刚刚搞明白这部分。他还是对java项目分析比较简单。2023-07-16 18:37:041
如何导入Sonar代码扫描规则
如何导入Sonar代码扫描规则和设置默认代码扫描规则。 工具/原料 SonarQube 方法/步骤 一 进入配置页面 点击“质量管理”菜单 ,在质量管理页面点击右上角“恢复设置”。 二 导入代码扫描规则 在“恢复设置”对话框中点击“选择文件”按钮,选择代码扫描规则XML文件,再点击“恢复按钮”。 三 设置默认代码扫描规则 点击刚导入的代码扫描规则右边的“设为默认”链接,可将此规则设置为默认的Java代码扫描规则2023-07-16 18:37:121
MicroFocus的Fortify和SonarQube哪个好一点?
Fortify能可以高效地找出源代码中的安全漏洞,准确度高2023-07-16 18:37:201
sonarqube怎么没有install的
2、环境变量,设置SONAR_RUNNER_HOME,在Path下添${SONAR_RUNNER_HOME}/bin (Unix) or %SONAR_RUNNER_HOME%/bin。3、修改${SONAR_RUNNER_HOME}/conf/sonar-runner.properties文件,打开database connection, server URL的注释命令行中输入sonar-runner –h查看是否配置成功2023-07-16 18:37:271
sonarqube可以定时扫描项目么
不可以2023-07-16 18:37:351
sonar 指定jdk怎么配置
sonar分析工具:sonar-runner 下载sonar-runner: 1.进入下载页面 2.找到sonarqube-runner 如图: 3.点击下载 下载完后,解压,将bin文件加入环境变量path中 如我的路径:F:sonar-runner-2.4in 将此路径加入path中 配置文件2023-07-16 18:37:431
sonarqube扫描前端js代码,扫描出的结果覆盖率这一项为什么没有数据?
如何导入Sonar代码扫描规则和设置默认代码扫描规则。 工具/原料 SonarQube 方法/步骤 一 进入配置页面 点击“质量管理”菜单 ,在质量管理页面点击右上角“恢复设置”。 二 导入代码扫描规则 在“恢复设置”对话框中点击“选择文件”按钮,选择代码扫描规则XML文件,再点击“恢复按钮”。 三 设置默认代码扫描规则 点击刚导入的代码扫描规则右边的“设为默认”链接,可将此规则设置为默认的Java代码扫描规则2023-07-16 18:37:501
如何搭建Sonar代码质量管理平台
下载,直接解压 添加mysql驱动至extensionsjdbc-drivermysql创建mysql数据库和用户:10.22.10.139 db:sonar 用户名/密码:sonar/sonar修改sonar.properties,注释掉默认的数据库配置,添加以下配置:[plain] view plaincopy#----- MySQL 5.x # Comment the embedded database and uncomment the following line to use MySQL sonar.jdbc.url=jdbc:mysql://10.22.10.139:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true 启动bin/sonar.sh start登陆http://localhost:9000/ 用户名/密码:admin/admin使用maven分析项目:在Maven的settings.xml(全局配置文件,不是项目的pom.xml)中添加以下配置:[html] view plaincopy<settings> <profiles> <profile> <id>sonar</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <!-- Example for MySQL--> <sonar.jdbc.url> jdbc:mysql://10.22.10.139:3306/sonar?useUnicode=true&characterEncoding=utf8 </sonar.jdbc.url> <sonar.jdbc.username>sonar</sonar.jdbc.username> <sonar.jdbc.password>sonar</sonar.jdbc.password> <!-- Optional URL to server. Default value is http://localhost:9000 --> <sonar.host.url> http://10.22.10.139:9000 </sonar.host.url> </properties> </profile> </profiles> </settings> 在pom.xml所在目录运行maven命令:[plain] view plaincopymvn clean install mvn sonar:sonar2023-07-16 18:38:102
sonarqube 分析C++ 代码时,为什么无法检测出问题
sonar分析工具:sonar-runner下载sonar-runner:1.进入下载页面2.找到sonarqube-runner如图:3.点击下载下载完后,解压,将bin文件加入环境变量path中如我的路径:F:sonar-runner-2.4in将此路径加入path中配置文件,以java工程为例1.在工程根目录下新建立一个sonar-project.properties配置文件2.用记事本打开进行参数配置,最简参数配置如下#Requiredmetadatasonar.projectKey=Monkeysonar.projectName=Monkeysonar.projectVersion=1.1#Comma-separatedpathstodirectorieswithsources(required)sonar.sources=srcsonar.binaries=binclasses#Languagesonar.language=java#Encodingofthesourcefilessonar.sourceEncoding=UTF-8说明:projectKey与projectName和工程名字一样即可sources为源码目录binaries为编译后的classes目录,这个目录要注意一下,如果都在bin下面或者目录还有很多层级才到classe目录,可以直接为sonar.binaries=bin,sonar会自动遍历所有目录language为分析的语言sourceEncoding源码编码格式4分析啦,分析也是超级简单1.打开CMD命令行2.cd进入你的工作空间,某个工程的代码路径3.敲入sonar-runner,即可进行分析2023-07-16 18:38:171
sonarqube可以分析war包吗
1、下载并解压sonar-runner.zip 官网下载网址: http://repository.codehaus.org/org/codehaus/sonar-plugins/sonar-runner/1.0/sonar-runner-1.0.zip 2、环境变量,设置SONAR_RUNNER_HOME,在Path下添${SONAR_RUNNER_HOME}/bin (Unix) or %SONA...2023-07-16 18:38:271