https://blog.csdn.net/weixin_49002978/article/details/121488379
https://docs.sonarqube.org/latest/requirements/requirements/
docker search sonar
docker pull sonarqube
docker run -d -p 9006:9000 sonarqube
我们打开浏览器输入网址 localhost:9006
默认登录的账号和密码都是admin,到这一步我们的sonar安装运行就完成了。
持久化sonar
官网上已经声明 sonarQube 7.9 版本以上不再支持 mysql 了,我们为了以后升级新版本不做数据库迁移,尽量使用 postgresql
如果需要持久化我们的sonar扫描数据,可以使用以下命令启动sonar,jdbc信息为mysql的连接、用户名和密码。sonar会将扫描信息持久化到postgres 中。
# 备挂载文件
mkdir -p /home/sonarqube/{extensions,logs,data}
# 修改内核参数
vim /etc/sysctl.conf
# 增加以下配置
vm.max_map_count=262144
fs.file-max=65536
# 使配置生效
sysctl -p
docker run --restart=always -d --name sonarqube -p 9006:9000 \
-v /home/sonarqube/extensions:/opt/sonarqube/extensions \
-v /home/sonarqube/logs:/opt/sonarqube/logs \
-v /home/sonarqube/data:/opt/sonarqube/data \
-e "SONAR_JDBC_USERNAME=sonar" \
-e "SONAR_JDBC_PASSWORD=sonar" \
-e "SONAR_JDBC_URL=jdbc:postgresql://192.168.0.103:5432/sonar" \
--privileged=true \
sonarqube
Administration->Marketplace->搜索chinese pack,进行相应版本的安装,如下图
使用sonar扫描代码
登录进入sonar页面后,点击创建一个项目
点击 manually(手动的),这里也可以选择github,在项目中使用git关联sonar可以更方便的扫描代码分支。
然后随便输入一个project名称,这里建议与项目名称相同。
随便输入一个什么(建议与项目名称相同),生成一个token。生成后点击continue,继续。
根据我们的项目选址maven或者gradle,或者其他。sonar会在下方自动给出扫描代码的命令。然后打开我们的idea,在下方命令行执行。这里有一个坑点,由于sonar会去target目录下扫描我们的class文件,所以要先将项目打包
mvn -package
然后再去扫描,扫描完成之后回到192.168.0103:9006,就可以看到我们代码中的质量问题了。
出现版本不一致问题
对照
默认的 sonar最新版本 支持 java11 需要修改版本
使用 sonarqube 对 java 项目代码进行扫描的时候,java 项目的版本不能低于 sonar 的编译版本。
sonarqube:7.8-community 是 sonar 对 jdk1.8 的最后一个版本,从 7.9 以后 sonar 最低支持版本为 jdk 1.11
sonar 与 Java版本 对照 官网上能看到的
sonarqube | java | 官网 |
---|---|---|
>7.8 | 11 | 详细 |
7.8 >7.4 | 8 | 详细 |
sonarqube 应当降低版本到7.8
docker pull sonarqube:7.8-community
docker rm -f sonarqube
rm -Rf /home/sonarqube/{extensions,logs,data}
mkdir -p /home/sonarqube/{extensions,logs,data,conf}
chown -R 999:999 /home/sonarqube/.
docker run -d --name sonarqube sonarqube:7.8-community
docker cp sonarqube:/opt/sonarqube/conf /home/sonarqube/
docker cp sonarqube:/opt/sonarqube/extensions /home/sonarqube/
docker rm -f sonarqube
chown -R 999:999 /home/sonarqube
docker run --restart=always -d --name sonarqube -p 9006:9000 \
-v /home/sonarqube/conf:/opt/sonarqube/conf \
-v /home/sonarqube/extensions:/opt/sonarqube/extensions \
-v /home/sonarqube/logs:/opt/sonarqube/logs \
-v /home/sonarqube/data:/opt/sonarqube/data \
-e sonar.jdbc.username=sonar \
-e sonar.jdbc.password=sonar \
-e sonar.jdbc.url=jdbc:postgresql://192.168.0.103:5432/sonar \
sonarqube:7.8-community
https://blog.csdn.net/a391000181/article/details/102221188
数据库postgresql 应当设置为 public
mvn sonar:sonar -Dsonar.projectKey=test -Dsonar.host.url=http://192.168.0.103:9006 -Dsonar.login=6948ace42076ab5e26e9e7bfdbf237a1df3c14f9
点波关注 系统搭建(docker)