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
文章来源:https://www.toymoban.com/news/detail-598702.html
扫描代码
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-plugin
、jacoco-maven-plugin
插件一起使用,先运行单元测试,生成代码覆盖率报告,然后再运行sonar:sonar
可以把覆盖率上传到SonarQube
文章来源地址https://www.toymoban.com/news/detail-598702.html
数据持久化
- 默认使用
h2
数据库,存储位置data/sonar.mv.db
- 支持数据库:
Oracle
、PostgreSQL
、Microsoft 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/
到了这里,关于【SonarQube】下载、安装、配置、使用介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!