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

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/
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太空眼睛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值