【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/

猜你喜欢

转载自blog.csdn.net/friendlytkyj/article/details/130925342