1.安装

1.1 快速安装

  1. 1.说明
  2. # 快速安装尽量不要用于生产环境,生产环境请采用生产安装的方式
  3. 2.下载zip安装包
  4. # 此次演示为sonarqube-7.9.1,非lts版本
  5. 3.解压到安装位置
  6. 4.执行运行脚本
  7. # 运行脚本位于sonarqube-7.9.1/bin
  8. # 不同平台根据bin下目录的不同执行不同的脚本启动即可
  9. # ./sonar.sh console(打印终端信息方式启动,不会到后台,调试问题使用)
  10. # ./sonar.sh start(以服务方式启动,会到后台,正式生产上用)
  11. 5.查看运行效果
  12. # http://localhost:9000

1.2 生产安装

  1. # 从版本7.9开始,sonar将不再支持mysql,所以我们采用PostgreSQL

2.使用

  1. 1.登陆sonar
  2. # http://localhost:9000 admin/admin
  3. 2.创建新项目
  4. # 右上角+->创建新项目
  5. 2.1 填写项目key和项目显示名称
  6. # ProjectKey: 项目名(建议使用maven中的groupId:artifactId的形式),比如happigo:wx,对应sonar-project.properties里的sonar.projectKey
  7. # DisplayName: 项目名(显示名称随意命名),比如happigo.wx,对应sonar-project.properties里的sonar.projectName
  8. 2.2 提供token
  9. # 可生成一个token,也可以提供一个已有的token,这个主要用在执行分析时标识身份,如果它已被泄露,可以在任何时候在用户帐户中撤销它,对应sonar-project.properties里的sonar.login
  10. 2.3 在项目程序中执行分析
  11. # 根据实际情况选择编程语言,操作系统,不同的操作系统会导致接下来要安装的sonar-scanner不同,下载scanner后解压到安装目录,然后将bin目录写入系统PATH,使之能全局执行
  12. # 然后根据提示在项目的根目录执行相应命令即可对代码进行分析
  13. sonar-scanner \
  14. -Dsonar.projectKey=happigo:wx \
  15. -Dsonar.sources=. \
  16. -Dsonar.host.url=http://localhost:9000 \
  17. -Dsonar.login=da01d2c3c6ac0f31edf40dff51c321610492ef55
  18. 3.配置项目
  19. # 每次执行分析需要运行那么大一块着实不方便,所以我们在项目的根目录下新建文件sonar-project.properties
  20. # 对于这个演示,该文件内容如下:
  21. wget https://evernote-1258366890.cos.ap-guangzhou.myqcloud.com/1910162032.properties
  22. # 这样配置之后,每次分析,直接在项目根目录下执行sonar-scanner即可,每次执行首先会去sonar-scanner安装位置的conf找sonar-scanner.properties文件,然后再去找项目根下的该名字的文件

3.问题

3.1 sonar无法启动(快速安装)

  1. 1.执行启动
  2. cd sonarqube-7.9.1/bin/macosx-universal-64
  3. ./sonar.sh console(打印终端信息方式启动)
  4. # 报错如下:
  5. # java.lang.IllegalStateException: SonarQube requires Java 11+ to run
  6. 2.排查问题
  7. # 由于需要java 11+,所以我直接安装了jdk13,之后继续执依然报如下错误
  8. # Elasticsearch listening on /127.0.0.1:9001
  9. # jvm 1
  10. # Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/Users/spectre/Data/htdocs/sany/sonarqube-7.9.1/elasticsearch]:/Users/spectre/Data/htdocs/sany/sonarqube-7.9.1/elasticsearch/bin/elasticsearch
  11. # Waiting for Elasticsearch to be up and running
  12. # 之后sonar就停止了,没看出具体错误,但可以发现,sonar-7.9.1依赖于elasticsearch,sonar也集成了elasticsearch,会不会是elasticsearch没有启动呢
  13. # 进入sonarqube-7.9.1/logs,查看es.log发现elasticsearch确实没有启动,报找不到主类的错误
  14. # 网上有说是elasticsearch不能以root用户启动等原因,我本来就是以mac用户spectre启动,并不是root,所以不存在这个问题,最后安装jdk11,成功解决问题