如果本文涉及到的Sonar7.8,汉化包,jdk8,MySQL5.7大家因为各种原因下载不了,可以从我分享的百度云链接里下载。链接我设置的永久有效,请尽情享用。
链接:https://pan.baidu.com/s/18xi6qodEYaILqH9Rc1XDvw
提取码:nimp
问题背景:
看到别人用SonarQube对代码进行规范,自己就想搭建一个SonarQube自己玩玩。
写个记录文章希望能多多少少帮到同样不懂SonarQube又想玩一玩的同学们。
1、在IDEA中有Sonar插件可以使用,比较方便。
虽然SonarLint评分低,但是下载它的人多啊,590万的下载量。
使用体现。
2、搭建SonarQube.
心路历程:
真的是一步一个坑,太坎坷了。
一开始想着在Windows上简单玩一下,然后就搜了下资料,去官网翻了半天,下了10版本的包,和官网最早版本7.9.6版本的包,结果都不好用,因为要么不支持MySQL,要么不支持jdk8,需要jdk更高版本。(官网明面上看不到7.9.6版本之前的SonarQube了,但是可以通过改它的下载链接,来获取我们想要的版本的包。)但是我windows上MySQL版本是8版本,所以选择在虚拟机上搭建SonarQube,于是在Linux上进行SonarQube的配置安装。
比如:
https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-10.1.0.73491.zip
https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.8.zip(我就是下的这个版本,因为是最后一个可以用jdk8和MySQL的版本。)
sonar7.9及以后的版本都需要jdk11或者更高,而且都不再支持MySQL进行存储。
前置条件:
引用两位大佬的文章。
就是简单的上传到linux服务器上,解压,然后
vi sonarqube-7.8/conf/sonar.properties
sonar.properties
# 数据库用不用localhost结合自己的实际情况。不是本机的mysql就写IP
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.login=admin
sonar.password=admin
# 端口查看一下有没有被占用。被占用就改一个。
# 用 netstat -anlp|grep 9000 命令查看。
sonar.web.port=9000
sonar.search.port=9002
然后看一下是否启动成功。
# 看你自己把文件夹放哪了啊,别直接复制。
cd sonarqube-7.8/bin/linux-x86-64
./sonar.sh start & tailf ../../logs/sonar.log
我这里发现报错了。报错说是es加载插件的时候出错了。
cd sonarqube-7.8/logs
# 查看es日志。
less es.log
说是es不能用root用户启动。(不只是使用Sonar的时候,在别的地方用到es的时候也不能用root用户启动,也会报错。)
那简单,那我给你新建个用户就得了呗。
# 用root用户添加新用户,没有密码,可以直接 su sonar 切到 sonar 用户。
groupadd sonar
useradd -g sonar sonar
# 把sonarqube文件夹授权给 sonar。
# 之前我的sonarqube文件夹的权限是root用户,所以es会报那个错误。
chown -R sonar:sonar sonarqube-7.8
# cd 到 sonarqube-7.8/bin/linux-x86-64 文件夹,
# 启动 sonarqube 并 监听 sonarqube 启动日志。
./sonar.sh start & tailf ../../logs/sonar.log
发现启动成功。
第一次启动会比较慢,大概两三分钟。
搞了半天,终于看到这个页面了,泪目了家人们。
这时就可以搞一搞测一测玩一玩自己的项目了。
用这个maven命令,在你的项目文件夹内运行。
# projectKey,url,login的值都换成自己的。
mvn sonar:sonar -Dsonar.projectKey=test -Dsonar.host.url=http://192.168.1.200:9000 -Dsonar.login=f3194e0d69840ffc2e8d51823ec5f2c95cac36ff
Analysis successful.
家人们谁懂啊,终于搞出来了。
然后发现有的人会安装汉化插件,那我也想安,于是我就去应用市场搜 Chinese Pack.
点击安装之后报错,Error while downloading plugin ‘l10nzh’ with version ‘10.0’. No compatible plugin found.
问题就是SonarQube版本和Chinese Pack版本不匹配。
然后我又去Chinese Pack的github网站去找匹配SonarQube7.8版本的版本。
(这个图是我成功汉化的图,懒得折腾了,凑合看吧。)
发现这个版本支持SonarQube7.8.
下载完之后,
cd sonarqube-7.8/extensions/downloads
# 把刚才下载好的 sonar-l10n-zh-plugin-1.28.jar 放到这个目录下。
# 然后重启SonarQube
./sonar.sh stop
./sonar.sh start & tailf ../../logs/sonar.log
汉化成功。(不过其实汉化不是特别大的帮助,代码的报错信息还是英文的,看自己个人爱好吧。)
至此SonarQube安装配置、简单使用都已经实现。