1. sonarQube与SonarScanner的关系 sonar 是一个用于代码质量管理的开放平台,支持Windows、Linux、Mac。 安装SonarScanner 在安装 SonarScanner 之前,需要先安装 jdk(至少 1.8 及以上版本)。 下载SonarScanner https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/ 下载完后,是一个 zip 压缩包。 SonarScanner配置文件说明 找到 conf/sonar-scanner.properties 配置文件。
Sonar扫描之SonarScanner介绍 SonarScanner用于在构建系统没有指定scanner时使用。 默认为系统默认编码 #sonar.sourceEncoding=UTF-8 从 zip 文件运行 SonarScanner 要从 zip 文件运行 SonarScanner,遵循下列步骤操作: 从 Docker 镜像运行 SonarScanner 使用以下命令,使用 SonarScanner Docker 镜像进行扫描: docker run \ --rm \ -e SONAR_HOST_URL 为了防止SonarScanner在每次运行扫描时重新下载语言分析器,可以挂载一个供scanner存储下载内容的目录,以便在scanner运行期间可以重用下载的内容。 请用SonarScanner for .NET。 参考连接 https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
下载sonarscanner 进入 https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/ 下载相应的sonarscanner,解压后将 docs.sonarqube.org/latest/setup/get-started-2-minutes/ https://docs.sonarqube.org/latest/analysis/scan/sonarscanner
今天介绍一种基于 SonarScanner 在 Rainbond 源码构建过程中,对 Java Maven 项目进行静态扫描的方法。 SonarScanner For Maven 简介使用 SonarScanner for Maven 对 Maven 项目进行代码静态扫描,是 SonarQube 官方推荐的默认扫描器。 融入持续集成链条了解 SonarScanner for Maven 的工作方式之后,我们就可以尝试将代码扫描这个过程,融入到 Rainbond 的自动化持续集成链条之中。 图片点击确认创建之后,会完成代码语言的检测,此时进入高级设置,点击左侧的部署属性,我们需要做些高级设置来适配 SonarScanner 。 修改构建命令SonarScanner For Maven 通过在 mvn 命令中加入特定的参数来进行代码扫描。
SonarScanner 进行代码检查 进入如下目录 C:\jenkins\SpringBoot_v2 然后打开一个 cmd 命令行窗口,在该目录下执行命令 sonar-scanner 错误提示需要提供认证才能登录 SonarQube 上查看代码检查结果 待 sonar-scanner 命令执行完后,登录 http://localhost:9000/ 至此,SonarScanner 与 SonarQube 整合进行代码质量扫描就 另外,SonarScanner 提供了与eclipse、idea、jenkins等工具的集成。
前景 jenkins构建sonarqube报错 报错: "ERROR: Re-run SonarScanner using the -X switch to enable full debug logging
Dsonar.login=$SONARQUBE_TOKEN scanner在构建工具中的集成 scanner 支持目前主流的项目构建工具,并提供了对应的构建工具的支持,常见的插件包括 Gradle - SonarScanner for Gradle MSBuild - SonarScanner for MSBuild Maven - use the SonarScanner for Maven Jenkins - SonarScanner for Jenkins Azure DevOps - SonarQube Extension for Azure DevOps Ant - SonarScanner for Ant anything else (CLI) - SonarScanner 下载示例项目 git clone https://github.com/SonarSource/sonar-scanning-examples.git
配置 SonarQube 分析工具(SonarScanner) SonarScanner 是用于执行 SonarQube 分析的命令行工具。 5.1 下载 SonarScanner 访问 SonarScanner 下载页面。 下载并解压 SonarScanner。 5.2 配置 SonarScanner 配置系统环境变量: 将 SonarScanner 解压目录中的 bin 文件夹路径添加到系统的 PATH 环境变量中。 5.3 运行 SonarScanner 分析 在项目根目录下,打开命令行终端并执行以下命令: sonar-scanner 错误信息及解决方法: ERROR Error during SonarScanner 配合 SonarScanner 使用,SonarQube 能够帮助你自动化地检测并管理项目中的技术债务、安全漏洞及其他代码质量问题。
Dsonar.login=$SONARQUBE_TOKEN scanner在构建工具中的集成 scanner 支持目前主流的项目构建工具,并提供了对应的构建工具的支持,常见的插件包括 Gradle - SonarScanner for Gradle MSBuild - SonarScanner for MSBuild Maven - use the SonarScanner for Maven Jenkins - SonarScanner for Jenkins Azure DevOps - SonarQube Extension for Azure DevOps Ant - SonarScanner for Ant anything else (CLI) - SonarScanner 下载示例项目 git clone https://github.com/SonarSource/sonar-scanning-examples.git
实现c#的语言对应项目的代码审查的基本配置过程: (图片来自:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-msbuild 分别执行如下命令: SonarScanner.MSBuild.exe begin /k:"project" /d:sonar.host.url="http://ip:9000" /d:sonar.login ="********************************" MsBuild.exe /t:Rebuild SonarScanner.MSBuild.exe end /d:sonar.login ="********************************" 执行最后一句的时候如下: ERROR: Error during SonarScanner execution java.lang.UnsupportedClassVersionError org.sonarsource.scanner.cli.Main.execute(Main.java:75) at org.sonarsource.scanner.cli.Main.main(Main.java:61) ERROR: The SonarScanner
一般准则 在导入测试覆盖率之前,您需要配置适当的 SonarScanner,以便在构建管道中执行代码分析。 要启用覆盖率报告,您必须执行以下操作: 将覆盖率工具设置为作为生成管道的一部分运行。 您的覆盖率工具应设置为在SonarScanner分析之前运行。 配置覆盖范围工具,使输出报告文件的位置和格式与 SonarScanner 的预期相匹配。 然后,作为其分析过程的一部分,SonarScanner将导入这些文件并将结果发送到SonarQube。 覆盖范围支持 SonarQube 直接支持以各种语言的各种工具原生格式导入覆盖数据。 然后,您需要配置分析以告知 SonarScanner 报告的位置,以便它可以拾取报告并将其发送到 SonarQube,在那里它将与其他分析指标一起显示在您的项目仪表板上。 配置构建的扫描步骤,以便 SonarScanner 从该定义的路径中选取报告文件。
概述 如果每次都需要手动执行 SonarScanner ,肯定不是 DevOps 思想所不予许的。所以需要进一步完善 SonarQube 进行自动化代码分析。 从官方文档的 https://docs.sonarqube.org/latest/ SonarScanner 支持 MSBuild、Maven、Gradle、Ant、Jenkins 等。 SonarScanner 集成 Jenkins 进行自动化代码分析, 正是 DevOps 不可或缺的一部分。 2. 配置 SonarQube Scanner Manage Jenkins -> Global Tool Configuration 填入 SonarScanner 的安装目录 4.
安装过程主要分为两部分,一个是主程序 sonarqube,一个是 sonarScanner 插件,两个都安装配置好后就可以进行代码扫描了。 第三章:sonarScanner 插件的安装与配置 ① sonarScanner 获取 获取地址:官网下载 下载完后解压即可。 ? ② sonarScanner 设置环境变量 我们把它根目录下面的 bin 文件夹加入环境变量。 ? ? cmd 里输入 sonar-scanner -h 可以看有没有配置对。 ? ③ sonarScanner 配置 在这个配置文件夹里的配置文件进行配置。 ? 还是跟前面 sonarqube 的数据库配置一样。 sonarScanner 官网 给的配置方法。 ?
"${_MSBuildHome}\\MSBuild.exe\" Project.sln /t:Rebuild" bat "${_ScannerMsBuildHome}\\SonarScanner.MSBuild.exe MSBuild.exe /t:Rebuild' bat "${sqScannerMsBuildHome}\\SonarQube.Scanner.MSBuild.exe end" } }} SonarScanner git 'https://github.com/foo/bar.git' } stage('SonarQube analysis') { def scannerHome = tool 'SonarScanner global server connection, you can specify its name sh "${scannerHome}/bin/sonar-scanner" } }} SonarScanner /gradlew sonarqube' } }} SonarScanner for Maven: node { stage('SCM') { git 'https://github.com
settings.xml 配置插件和服务器地址,参考官方教程(参考命令图里的“Maven扫描器官方文档”): https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-maven 过滤器 扫描前端项目 第一次使用需安装 SonarScanner: https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/ 解压添加到环境变量后授权
×××地址 https://binaries.sonarsource.com/Distribution/sonar-scanner-cli 2)下载扫描器到指定目录下 [root@sonarqube sonarscanner ]# pwd /apps/sonarscanner [root@sonarqube sonarscanner]# ll -h total 41M -rw-r--r-- 1 root root 41M Jul 22 19:31 sonar-scanner-cli-4.0.0.1744-linux.zip 3)解压扫描器二进制源码并创建软连接 [root@sonarqube sonarscanner]# unzip sonar-scanner-cli-4.0.0.1744-linux.zip [root@sonarqube sonarscanner]# ls sonar-scanner-4.0.0.1744-linux sonar-scanner-cli-4.0.0.1744-linux.zip [root@sonarqube sonarscanner]# ln -sv sonar-scanner-4.0.0.1744
例如,使用 sonar 静态代码扫描,sonar 由2部分组成,分别是 SonarQube 平台,SonarScanner扫描器。 SonarQube: WEB 界面管理平台 展示所有的项目代码的质量数据 配置质量规则、管理项目、配置通知、配置SCM等 SonarScanner: 代码扫描工具 专门用来扫描和分析项目代码。 SonarQube 和 SonarScanner 之间的关系 ? 以上只是接受了一种静态代码扫描的方案,有钱的大公司也会购买 Fortify,这种大型的商业软件进行代码扫描。
sonar.working.directory 为使用 SonarScanner 或 SonarScanner for Ant(大于 2.0 的版本)触发的分析设置工作目录。 此属性与 MSBuild 的 SonarScanner 不兼容。路径必须是相对的,并且对于每个项目都是唯一的。注意:每次分析前都会删除该配置指定的目录。
Openshift or Kubernetes 集群架构图 三、常见的 CI/CD 架构图 1、Gitlab Webhook + Jenkins SharedLibraries/Kubernetes + SonarScanner
本地项目扫描 搭配SonarScanner使用 # 4.1 下载SonarScanner并解压 如图解压至C:\sonar-scanner # 4.2 配置SonarScanner 修改SonarScanner 集成jenkins 通过 Jenkins 更新中心安装 SonarScanner for Jenkins。