开发工具:静态代码扫描工具sonarqube

代码质量审核和管理工具分析比较 代码质量审核和管理工具分析比较1、SonarQube1.1 SonarQube使用2、DeepScan3、Klocwork4、CodeSonar5、JArchitect6、Fortify7、Codecov 1、SonarQube SonarQube是市场上最受欢迎的代码质量和安全性分析工具。它在开源社区的支持下,目前可以分析和产生对超过25种编程语言的输出,这比市场上大多数工具都要高。它具有免费的社区版本和其他付费版本。利用SonarQube的主要好处是: 它集成了数千种自动的静态代码分析规则,旨在提高开 阅读详情

1.准备环境

  • jdk8
  • sonarqube7.2.1

sonarqube server

2.配置

2.1 配置sonarqube

解压 sonarqube,编辑 conf 目录下的 sonar.properties 文件,配置数据库连接和 sonarqube 的登录信息

#数据库配置
sonar.jdbc.url=jdbc:mysql://xxxx:3306/tableName?useUnicode=true&characterEncoding=utf8
sonar.jdbc.username=xxx
sonar.jdbc.password=xxxx
# 连接池根据自己实际情况配置
sonar.jdbc.maxActive=30
sonar.jdbc.maxIdle=5
sonar.jdbc.minIdle=2
sonar.jdbc.maxWait=5000
sonar.jdbc.minEvictableIdleTimeMillis=600000
sonar.jdbc.timeBetweenEvictionRunsMillis=30000

#web server配置
#jvm配置
sonar.web.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
#绑定主机ip配置
sonar.web.host=0.0.0.0
#访问端口配置
sonar.web.port=9000
#连接配置
sonar.web.http.maxThreads=50
sonar.web.http.minThreads=5
sonar.web.http.acceptCount=25
#session超时配置,单位分钟,不能多于3个月
sonar.web.sessionTimeoutInMinutes=4320

#计算引擎配置 
#jvm配置
sonar.ce.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
#worker个数,需要考虑资源的消耗
sonar.ce.workerCount=1

#Elasticsearch配置 
#jvm
sonar.search.javaOpts=-Xmx1G -Xms256m -Xss256k -Djna.nosys=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly XX:+HeapDumpOnOutOfMemoryError
#http port and host
sonar.search.port=9001
sonar.search.host=127.0.0.1

#登录设置
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin

依次以管理员身份运行 “D:\sonarqube-7.2.1\bin\windows-x86-64” 目录下的前 3 个 bat 命令,其中 StartSonar.bat是启动 sonarqube 服务。在浏览器输入 http://localhost:9000,如果看到如下页面则配置成功。

01

注意,由于首次连接数据库的原因,需要等待一段时间。

2.2 运行 sonarqube

使用默认密码,admin, admin登录。

02
安装汉化包(非必须)
03
安装完成重启后的页面
04

3.代码分析

3.1 Analyzing with SonarQube Runner

该方法适用于所有不同架构的项目,包括没有使用任何源代码管理工具的项目形式,以及使用各种不同代码管理工具(SVN、Git、ClearCase 等)和编译工具(ant,maven)的项目形式,它都能够适用。

下载工具
解压安装后,将 bin 配置到系统的环境变量里去 。

3.1.1 配置sonar-scanner

#----- Default SonarQube server
sonar.host.url=http://localhost:9000

#----- Default source code encoding
sonar.sourceEncoding=UTF-8

3.1.2项目中配置

在项目工程下新建 sonar-project.properties 配置文件

# must be unique in a given SonarQube instance 项目的key(自定义)
sonar.projectKey=webapp
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1. 项目名称
sonar.projectName=webapp
sonar.projectVersion=1.0

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set. 项目路径
sonar.sources=.
sonar.language=java
#sonar.java.binaries=项目路径/target/classes
sonar.java.binaries=E:\\liveeasy_web_deploy\\target\\classes

# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8

05

检查是否配置成功:
06

切换到项目主目录下命令行运行:sonar-runner完成代码扫描

07
查看结果 http://localhost:9000

08

3.2 Analyzing with Maven

通过 mvn sonar:sonar 分析代码将结果提交到数据库中,SonarQube查询展示。

3.2.1 方式1:设置 maven

安装并配置 maven,配置文件为 setting.xml,添加数据配置

<profiles>
	  <profile>
		  <id>sonar</id>
		  <activation>
			<activeByDefault>true</activeByDefault>
		  </activation>
		  <properties>
			<sonar.jdbc.url>
				   jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
			</sonar.jdbc.url>
			<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
			<sonar.jdbc.username>sonar</sonar.jdbc.username>
			<sonar.jdbc.password>sonar</sonar.jdbc.password>
			<!-- Sonar服务器访问地址 -->
			<sonar.host.url>http://localhost:9000</sonar.host.url>
		  </properties>
		</profile>

在当前 maven 项目目录下运行 mvn sonar:sonar,完成即可在 SonarQube web 页面查看结果

3.2.2 方式2:添加插件

显式的将 sonar 绑定到 maven 生命周期中,指定 maven 的 site 声明周期时,则会自动调用 sonar.sonar 命令

<plugin>
    <groupId>org.codehaus.sonar</groupId>
    <artifactId>sonar-maven-plugin</artifactId>
    <version>5.1</version>
    <executions>
        <execution>
            <id>sonar</id>
            <phase>site</phase>
            <goals>
                <goal>sonar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

注意 sonar:sonar 必须单独执行。如果把 sonar:sonar 和其他 target 混在一起,比如 mvn clean installsonar:sonar,可能导致不可预期的问题。

4.在 idea 中使用 sonarLint

缺点是没有图形化界面

4.1 打开File->Settings->Plugins,搜索SonarLint插件

4.2 安装后重启

4.3 配置 maven,参考3.2.1的配置

4.4 分析代码

09

审查java代码的结果:
10

5.在 idea 中使用 SonarQube

5.1以管理员身份启动 SonarQube 服务器

11

5.2 添加 SonarQube 服务器

安装完 SonarLint 后添加 SonarQube 服务器
12

5.3 登录设置

13

5.4 设置SonarLint绑定的服务器

14
15
16
17

5.5 设置sonar-project.properties文件

5.6 分析主要代码获取结果

18

6. 参考资料与扩展

sonarQube之jenkins可持续化集成
SonarQube静态代码分析实战

Devops关键工具及技术(四)—基于Pipeline的SonarQube静态代码扫描 在上一篇文章Devops关键工具及技术(三)—基于Pipeline的Git+Maven+Junit持续集成中,我们实现了基于Pipeline的Git+Maven+Junit持续集成,并利用Pipeline的Junit插件进行Jenkins图形化展示Junit结果。 这篇文章我们将会介绍基于Pipeline的静态代码扫描。利用SonarQube进行先前持续集成中Spring-boot的Java we... 阅读详情

相关推荐

代码静态扫描工具sonar介绍

一、SonarQube整体介绍   SonarQube为静态代码检查工具,采用B/S架构,帮助检查代码缺陷,改善代码质量,提高开发速度,通过插件形式,可以支持Java、C、C++、JavaScripe等等二十几种编程语言的代码质量管理与检测。   通过客户端插件分析源代码,sonar客户端可以采用IDE插件、Sonar-Scanner插件、Ant插件和Maven插件方式,并通过各种不同的分析机制对...

liuhaiguang2012的博客 4万+

从“三不原则”到“零缺陷”:一个程序员如何用日常开发习惯守护代码质量

本文探讨了程序员如何通过日常开发习惯提升代码质量,从需求沟通、编码实践到代码评审和持续集成,详细介绍了防御性编码、测试驱动开发(TDD)和代码异味检测等实用技巧。文章还分享了如何通过五步回溯法和质量工具链持续优化开发流程,帮助开发者实现从“三不原则”到“零缺陷”的跨越。

weixin_28835551的博客 302

使用SonarQube+SonarScanner对Java代码进行扫描(Windows环境)

SonarQube 是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误; 一、准备工作 1、JDK1.8 2、MySQL数据库 准备工作; 1、jdk(不再介绍) 2、sonarqube:http://www.sonarqube.org/downloads/ 3、SonarQube+Scanner:https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar...

nikeylee的博客 1万+

sonarqube从5.6.6升级6.9.1的问题

有关sonarqube的问题欢迎讨论。请发私信,一起讨论我们目前从5.6.6升级到了6.9.1,遇到的一些注意事项:1:升级时间,我们项目较多升级时间比较久,因为之前的索引是存到数据库中的,导致的搜索性能太差,升级之后索引会存到本地,搜索性能提升的非常明显。这也是我们升级的原因2:工作线程数量,由于之前5.6.6配置文件是可以设置工作线程数量的,但是升级之后发现需要商业版才可以设置,在所有的版本变...

Makun1995的博客 1662

树莓派与OpenCV实现人脸识别(OpenCV安装篇)

主要看了以下两位博客的文章完成的,也遇到了不少的坑,在这里一一填补说明。 链接: https://blog.csdn.net/weixin_42163073/article/details/107308759. 链接: https://blog.csdn.net/weixin_42573595/article/details/108526850. 树莓派与OpenCV实现人脸识别(OpenCV安装篇)一、材料准备:二、系统烧录三、安装OpenCV依赖项四、下载OpenCV-4.3.0五、为OpenCV配置P

weixin_45880057的博客 1万+

移相变压器Simulink建模与HVDC系统仿真实践

移相变压器是电力电子领域实现精确相位调节的核心设备,其通过特殊绕组设计改变输出电压相位角,在解决环网潮流不均、阻尼功率振荡等场景具有关键作用。本文基于MATLAB/Simulink环境,详细解析移相变压器的建模原理与技术实现,包括磁路耦合特性模拟、参数计算方法和控制策略设计。针对HVDC高压直流输电和FACTS柔性交流输电系统等典型应用,提供仿真模型搭建技巧与问题排查指南,特别涵盖新能源并网场景下的相位调节优化方案。通过实测数据验证,所建模型在稳态精度和动态响应方面均满足工程要求,为电力系统稳定性分析提供有

weixin_28278377的博客 270

深入研究SVN代码检查的关键工具:svnchecker vs. SonarQube

这篇博客中,我们将深入研究SVN代码检查的关键工具,聚焦于svnchecker和SonarQube的比较与应用。通过全面剖析它们在SVN项目中的作用,我们将揭示它们在提高代码质量、预防潜在缺陷和促进团队协作方面的独特优势。文章将详细讨论svnchecker和SonarQube的功能特色、优缺点,并指导读者如何在实际项目中选择最适合的工具。无论是追求高效的代码审查流程还是通过自动化工具优化开发流程,本文都将为读者提供实用的见解和建议。通过这篇博客,读者将能够更全面地了解svnchecker和SonarQube

唯有努力,方可自信! 1万+

手把手教你用OpenCalib完成激光雷达与相机联合标定:从数据准备到结果可视化

本文详细介绍了使用OpenCalib工具链中的lidar2camera模块完成激光雷达与相机联合标定的全流程,包括数据准备、标定命令执行、结果验证与可视化。通过实战指南,帮助读者掌握工业级标定技术,提升自动驾驶和机器人领域的传感器融合精度。

weixin_30872499的博客 398

静态代码扫描工具 Sonar 配置及使用

静态代码扫描工具 Sonar 配置及使用

洛西纳的专栏 1万+

CANoe信号传输故障排查指南

本文提供了全面的CANoe信号传输故障排查指南,涵盖从硬件连接、通道配置到软件脚本与数据库加载的全链路诊断。针对常见的通道指示灯不亮、信号无法发送及ECU握手失败等问题,给出了基于CANoe工具和CAPL脚本的详细排查步骤与解决方案,帮助工程师系统化定位并解决实车测试中的通信故障。

ice55的博客 257

HDMI协议介绍(一)--Overview

HDMI全称(High Definition Multimedia Interface)高清多媒体接口,支持在单线缆上传输全数字高清视频和多声道音频。

SlamDunk的博客 2万+

sonarQube对代码进行静态扫描

sonarQube是一个代码质量和安全性检测工具,社区版免费,可以帮助开发人员在开发阶段就避免各种质量和安全的问题。 1、安装 官网地址:https://www.sonarqube.org/ 可以直接下载运行,bin目录下有各个系统的运行脚本,包括linux、mac、windows,不过运行的时候需要确认本地的JDK版本,7.7以上都需要JDK11。 或者使用跑在k8s上面 ...

sunies-的博客 1547

从0到1构建数据分析AI Agent:数据采集、洞察生成与报告自动化

在企业数字化转型的今天,数据分析师80%的时间被消耗在重复取数、数据清洗、报表排版等低价值劳动上,真正用于深度业务洞察和决策支持的时间不足20%。本文将从核心概念、技术原理、代码实现、落地实践全维度,教你从0到1搭建一套完整的数据分析AI Agent系统,实现「用户用自然语言提需求→Agent自动采集多源数据→AI自动挖掘业务洞察→自动生成符合业务要求的多格式报告」的全链路自动化,平均可将需求响应速度从天级压缩到分钟级,释放70%以上的分析师人力成本。

AI Python 编程之道的博客 471

sonarqube 升级问题

升级版本时数据库数据比较大时,修改elasticsearch/config/jvm.options Xmx 参数可以加快BulkIndexer 的速度,可以达到30000 items/sec左右; web[][o.s.s.es.BulkIndexer] 11685042 requests processed (30292 items/sec) 升级报错:None of the configure...

dongwuming的专栏 1006

提升JVM性能:CMS垃圾回收器的优化分析与案例研究

本文介绍了CMS(Concurrent Mark-Sweep)垃圾回收器的工作原理、优缺点及常见问题,并通过具体案例分析了其优化策略。重点探讨了CMS的各个阶段,包括标记、并发清理和重标记,分析了可能导致性能瓶颈的因素如停顿时间过长和内存碎片化。文章还分享了调整垃圾回收参数、结合其他垃圾回收器以及内存优化等方法,帮助提高CMS的回收效率和性能。最后,文章展望了随着JVM发展,结合新一代垃圾回收器优化的趋势,助力Java应用在高并发环境下的性能提升。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 175万+

裂缝二维检测:裂缝的长度和宽度检测

这一节,我们需要去整合一下前面的代码,在进行长度和宽度的测量时,需要裂缝的类型、个数、面积的帮助。这一章是本专栏的核心部分。以上代码我均试过,由于本人能力有限,看不懂代码,最终还是没有采用,使用的是最普通检测宽度的方法,即求得骨架总长度后,用总面积求取平均宽度。

m0_62919535的博客 4237

sonarqube+postgres+Gitlab+eclipse+sonarlint

概述 sonarqube可以看做是一个平台,它将各个插件整合起来并以web界面的形式展示结果。它支持多种语言的静态扫描,这里首先进行了Java方面的尝试。操作系统是CentOS7,用到的数据库是postgres,整合的代码管理工具是Gitlab,CI流程没有用jenkins,而是用的gitlab自己的CI功能,代码开发工具用的是eclipse,lint采用的是sonarlint的连接服务器模式。 版本 由于工作环境中的jdk版本是1.8,所以考虑对应的sonarqube版本,最高版本是7.8,后期由于要跟G

xuesonbw的博客 557

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【亲测免费】 SonarSource Java 代码质量与安全分析工具使用教程

SonarSource Java 是一个用于 Java 代码质量和安全性的静态分析工具。它能够帮助开发者检测代码中的潜在问题,包括 bug、代码异味和安全漏洞。该工具提供了超过 600 条规则,涵盖了从代码风格到复杂性分析的各个方面。 ### 主要功能 - **600+ 规则**:包括 150+ 的 bug 检测规则和 350+ 的代码异味规则。 - **代码度量**:支持认知复杂度、代码行数等...

gitblog_00348的博客 878

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

代码检查工具 Sonar 安装&使用

本文主要说明Sonar的安装方式并附上依赖安装包,本文目标只实现本地搭建测试的Sonar环境,以及本地的测试项目的非定制化扫描 本机测试环境:Win10-X64,.vs2017 依赖包: 1.SDK Java的东东 2.sonarqube静态代码检查工具,B/S 3.sonar-scanner-msbuild 真正的代码扫...

weixin_34319111的博客 1263

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

sonarqube6快速入门

sonarqube6快速入门

johnhuster的专栏 3269

静态代码扫描工具汇总

一、概述 在软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷。传统的代码评审、同事复审,通过人工方式来检查缺陷仍然是一件耗时耗力的事情。而静态代码扫描工具能够在代码构建过程中帮助开发人员快速、有效的定位代码缺陷并及时纠正这些潜在的问题。 通过调研,本文将着重介绍几款常用的静态代码扫描工具,这些工具分为几类: 轻量级静态代码扫描工具:Cppcheck、 Tscancode 插件嵌...

ym & blog 1万+

sonarqube scanner报错can not be decided as the file matches patterns of both sonar.lang.patterns.c++

1、报错如下所示: 2、问题原因:默认c++扫描 3、问题解决:在sonar-project.properties中添加sonar.language=c,指定使用c插件来运行

gengyiping18的专栏 3180

Java 代码质量:SonarQube 静态扫描配置

通过SonarQube,我们能提前发现代码中的Bug、漏洞和异味,量化代码质量指标

码刀攻城 2837

使用sonarqube进行静态代码扫描

sonarqube是一个开源的代码分析平台,可用于持续分析代码质量,包括已有bug、坏味道、重复代码等等,并通过web页面展示出来。sonarqube不仅可供测试部门使用,个人在开发过程中随时查验错误也可以使代码质量得到一个不错的提升。1.下载https://docs.sonarqube.org/display/SONAR/Get+Started+in+Two+Minutes很方便吧,确实get ...

alice_wonderland_22的博客 6111

SonarQube搭建静态代码扫描系统

SonarQube搭建静态代码扫描系统,实现测试左移,提前发现Bug

weixin_45589713的博客 2111

前端项目使用 sonarQube 代码扫描检测 2024

SonarQube是一个开源的代码质量管理平台,它用于持续检查代码质量,并提供实时反馈,以帮助开发团队改进其代码。它可以帮助开发人员发现代码中的潜在问题、漏洞和代码异味,从而提高代码的可维护性、可读性和安全性。SonarQube可以进行静态代码分析,检查代码中的bug、漏洞、代码重复、代码规范违反等问题。它还提供了可视化的报告和仪表板,帮助团队了解代码质量的状况,并及时采取行动。

weixin_43589827的博客 6879
上一篇: 开发工具: git 13、使用二分法查找哪一次提交引入了线上bug
下一篇: 设计模式 01、uml与设计原则
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值