【SonarQube】下载、安装、配置、使用介绍

news2025/5/18 6:02:51

文章目录

  • SonarQube安装
  • 运行
  • 使用root启动问题处理
  • 修改文件数限制
  • JDK版本问题
  • 创建Project
  • 创建token
  • 扫描代码
  • 数据持久化
  • 在线文档

SonarQube安装

  • 官网下载地址: http://www.sonarqube.org/downloads/
  • 9.9.1.69595下载地址: https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.9.1.69595.zip
  • 10.0.0.68432下载地址: https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-10.0.0.68432.zip

运行

  • 解压后运行bin目录下的启动脚本
    cd sonarqube-10.0.0.68432/bin/linux-x86-64
    ./sonar.sh start
    
  • 如果是使用root用户启动SonarQube会报错,可参考启动问题处理
    • 再次使用sonar用户启动: sudo su - sonar -c '/opt/sonarqube-10.0.0.68432/bin/linux-x86-64/sonar.sh start'
  • 如果ulimit -Hn显示的数字是4096,可参考修改文件数限制
    • 再次启动: sudo su - sonar -c '/opt/sonarqube-10.0.0.68432/bin/linux-x86-64/sonar.sh start'
  • 如果使用JDK 20启动,需要换成JDK 17
  • 浏览器输入地址: http://localhost:9000/
  • 默认账号密码: admin/admin
  • 第一次登录会提示修改密码
    在这里插入图片描述

使用root启动问题处理

  • 查看logs/sonar.log日志
    2023.05.29 10:07:25 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
    2023.05.29 10:07:34 WARN  app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [ElasticSearch]: 1
    2023.05.29 10:07:34 INFO  app[][o.s.a.SchedulerImpl] Process[ElasticSearch] is stopped
    2023.05.29 10:07:34 INFO  app[][o.s.a.SchedulerImpl] SonarQube is stopped
    

    提示处理ElasticSearch出错

  • 继续查看logs/es.log
    2023.05.29 10:07:34 ERROR es[][o.e.b.Elasticsearch] fatal exception while booting Elasticsearch
    java.lang.RuntimeException: can not run elasticsearch as root
            at org.elasticsearch.bootstrap.Elasticsearch.initializeNatives(Elasticsearch.java:260) ~[elasticsearch-8.6.1.jar:?]
            at org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:166) ~[elasticsearch-8.6.1.jar:?]
            at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:66) ~[elasticsearch-8.6.1.jar:?]
    
    • Elasticsearch不允许root用户启动
    • 同时也意味着SonarQube也不允许root用户启动
  • 创建新用户
    adduser sonar
    passwd sonar
    chown -R sonar:sonar sonarqube*
    

修改文件数限制

查看logs/es.log

2023.05.29 10:36:05 WARN  es[][o.e.b.BootstrapChecks] max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
2023.05.29 10:36:05 WARN  es[][o.e.b.BootstrapChecks] max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决方案

  • vi /etc/security/limits.conf
  • 追加一行: * - nofile 1000000
  • 查看hard限制: ulimit -Hn
  • 退出当前会话,重新打开新的会话生效

JDK版本问题

查看logs/nohup.log

Exception in thread "main" java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release
        at java.base/java.lang.System.setSecurityManager(System.java:429)
        at org.sonar.process.PluginSecurityManager.restrictPlugins(PluginSecurityManager.java:42)
        at org.sonar.server.app.WebSecurityManager.apply(WebSecurityManager.java:47)
        at org.sonar.server.app.WebServer.main(WebServer.java:101)

解决方案

  • 本地使用的是JDK 20,换成JDK 17即可

创建Project

在这里插入图片描述

创建token

在这里插入图片描述

在这里插入图片描述

扫描代码

  • mvn sonar:sonar -Dsonar.projectKey=cops -Dsonar.host.url=http://localhost:9000 -Dsonar.login=sqp_1998b065cfa02ebccc672a25449fb468040cc32f
  • mvn sonar:sonar -Dsonar.projectKey=wen3-demo -Dsonar.host.url=http://localhost:9000 -Dsonar.login=sqp_866c4cbc4722590478f7f2d5cf2f9be06bee2985

结合maven-surefire-pluginjacoco-maven-plugin插件一起使用,先运行单元测试,生成代码覆盖率报告,然后再运行sonar:sonar可以把覆盖率上传到SonarQube

数据持久化

  • 默认使用h2数据库,存储位置data/sonar.mv.db
  • 支持数据库: OraclePostgreSQLMicrosoft SQLServer
  • 参考conf/sonar.properties,查看以sonar.jdbc开头的配置项

在线文档

  • 官网: https://docs.sonarqube.org/
  • SonarScanner for Maven: https://docs.sonarqube.org/latest/analyzing-source-code/scanners/sonarscanner-for-maven/

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

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

相关文章

chatgpt赋能python:Python下载之后怎么用:详细教程

Python下载之后怎么用:详细教程 Python作为一种著名的编程语言,已经成为众多程序员和开发者的首选。因此,如果您也想开始使用 Python 来进行编程,那么下一步应该是下载和安装Python。但是,下载完 Python 之后&#xf…

范式迁移 | Squids DBMotion支持Oracle迁移到GaussDB

Squids DBMotion 2304发版成功,再添重量级数据同步功能——支持Oracle迁移到GaussDB。 GaussDB是华为自主创新研发的分布式关系型数据库。该产品具备企业级复杂事务混合负载能力,同时支持分布式事务,同城跨AZ部署,数据0丢失&…

企业使用WordPress网站的6个理由

WordPress 为超过三分之一的网络和超过 38%的顶级 10K 网站提供支持。它最初是一个博客平台,现在是世界上使用最广泛的内容管理系统,对于希望在未来几年扩大规模的网站所有者来说,是一个明智的选择。 除了使用开源软件的好处之外&#xff0c…

从古板到智能:机器程序的华丽转身

因为 ChatGPT 的热潮,目前在恶补人工智能方面的知识。在某一篇文章的评论中,我看到了一个问题:“为什么 ChatGPT 能这么厉害,基本什么问题都能回答,如何做到的” 这也是我想问的问题,在初学编程的时候&…

Packet Tracer - 配置区域策略防火墙

Packet Tracer - 配置区域策略防火墙 拓扑 地址表 设备 接口 IP地址 子网掩码 默认网关 交换机端口 R1 F0/1 192.168.1.1 255.255.255.0 N/A S1 F0/2 S0/3/0 (DCE) 10.1.1.1 255.255.255.252 N/A N/A R2 S0/3/0 10.1.1.2 255.255.255.252 N/A N/A S0/3…

Unity 反射探针

反射射探针 是用来模拟反射周边物体的光照信息的一种解决方案让物体,受周围物体的光照或材质进行影响的一种模拟光照效果。如下图效果: 反射探针属性截图 反射探针类型 Baked 烘焙模式,此种模式需要反射的物体是静态的不能移动,但…

如何高效提问,准确搜索,开发小白不会百度?

How-To-Ask-Question ?其实我也是小白,这个问题没有太多发言权。目前来说,我暂时也没有找到一个通法,但整体上来说也不是无迹可寻(是有一定技巧和经验在里面的)。我之前也经常遇到了一些这方面问题&#x…

1.5. 流程控制(分支与循环)

流程控制是编程中的基本概念,用于控制程序的执行顺序。在 Java 中,流程控制主要分为两类:分支结构(Branching)和循环结构(Looping)。 1.5.1. 分支结构 分支结构是根据条件判断来选择执行不同的…

【*1900 DP+Tree】CF9D

Problem - 9D - Codeforces 题意: 思路: 计数问题,考虑计数DP 因为它是二叉树,比较特殊,所以可以考虑一下线性DP 按照题目最后要算的答案,状态可以这样设计: 设dp[i][j]表示树高为i&#x…

Linux设备驱动程序(二)——建立和运行模块

文章目录 前言一、设置测试系统二、Hello World 模块1、代码详解2、执行效果 三、内核模块相比于应用程序1、用户空间和内核空间2、内核的并发3、当前进程4、几个别的细节 四、编译和加载1、编译模块2、加载和卸载模块3、版本依赖 五、内核符号表六、预备知识七、初始化和关停1…

旗鱼优化(SFO)算法(含MATLAB代码)

先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年…

Thread.sleep( )线程休眠的优化写法

TimeUnit.SECONDS.sleep(10)和Thread.sleep(10 * 1000)都可以用于线程休眠 代码如下: import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.concurrent.TimeUnit; /*** program: moon-cloud-car* author: 阿水* create…

MT6765 处理器参数 MTK6765芯片性能配置|详细参数

MT6765处理器,也被称为Helio P35,是联发科(MediaTek)推出的高性能智能芯片。作为目前市场上受欢迎的低成本智能芯片之一,MT6765以其卓越的性能和创新技术为用户提供了更加顺畅和高效的使用体验。 MT6765作为一款八核芯片,MT6765的…

最佳实践:基于vite3的monorepo前端工程搭建 | 京东云技术团队

一、技术栈选择 1.代码库管理方式-Monorepo: 将多个项目存放在同一个代码库中 ▪选择理由1:多个应用(可以按业务线产品粒度划分)在同一个repo管理,便于统一管理代码规范、共享工作流 ▪选择理由2:解决跨项…

Homeassistant --openwrt docker 安装

openwrt homeassistant安装教程 前提:在N1盒子上面烧录 f大的openwrt系统 (安装81o 或者82o都可以) 一.进入openwrt系统 通常为192.168.1.1 打开网络配置 点击网络点击接口然后修改 这样网络是属于旁路由上网了 可以联通网络了 主要需要填写正确 二.点击docker …

南大通用数据库-Gbase-8a-报错集锦-02-metadata is incomplete on localhost

一、版本信息 名称值CPUIntel(R) Core(TM) i5-1035G1 CPU 1.00GHz操作系统CentOS Linux release 7.9.2009 (Core)内存3G逻辑核数2Gbase8a版本8.6.2-R43 二、问题原因 由于gbase.table_distribution存储了所有引擎为express的表元数据信息,如果此表出现数据损坏&a…

Linux使用PowerShell模块管理MsSql-Server

1.安装PowserShell 更新包列表 sudo apt-get update 安装依赖: sudo apt-get install -y wget apt-transport-https software-properties-common 下载 key: wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb&…

第三方apple pencil哪个好?好用的电容笔排行榜

由于Apple Pencil的推出,让iPad变成了一个轻量化的办公室工具,它的优点就是可以让画家在iPad上作画,能够适用于各种各样的绘画,并且非常适合一些上班族。今天就来为大家推荐几支适合画画的电容笔! 第一部分、电容笔选…

「实在RPA·服装制造数字员工」助力服装「智」造数字升级

服装制造业作为衣食住行的重要组成部分,除了在百姓生活中扮演者着重要角色之外,同时在经济发展中具有重要的地位和作用。它不仅提供了大量就业机会,促进国际贸易和经济发展,同时也推动了技术创新和消费需求的满足。为顺应数字经济…

Vue组件化、通过自定义指令子组件向父组件传递

1.如何安装Vue脚手架? 第一步(仅第一次执行):全局安装vue/clinpm install -g vue/cli 第二步:切换到你要创建项目的目录,然后使用命令创建项目vue create xxxx 第三步:启动项目npm run serve 2…