一,SonarQube简介
sonarqube是一款代码质量检查工具,使用sonar扫描我们写过的代码,可以有助于检查出代码的bug、规范性和健壮性,有助于提高我们的代码质量。
二,安装Docker
下载网址:https://hub.docker.com/
安装完成之后,命令行输入
docker -v
三,安装sonar
(注意事项:Sonar的安装与配置需要JAVA环境;因此,我们还需要提前准备好JAVA环境;要选择能够和Sonar
匹配的版本来进行安装,jdk安装过程省略);
1,在命令行输入
docker -search sonar
会有很多的sonar版本
2,我们直接使用命令,docker pull sonar 默认下载最新版本的sonarqube
docker pull sonar
或者使用
docker pull sonarqube:8.9.2-community下载指定版本
3,切换到conf目录下,对sonar.properties文件进行配置
4、运行sonar
命令行输入docker run -p9000:9000 sonarqube
sonar默认端口为9000,将docker内镜像的端口9000映射到主机端口9000,这时候我们打开浏览器
输入网址 localhost:9000,就可以进入docker的页面了。默认登录的账号和密码都是admin,到这一步
我们的sonar安装运行就完成了。
4、持久化sonar
如果需要持久化我们的sonar扫描数据,可以使用以下命令启动sonar,jdbc信息为mysql的连接、用户名和密码。sonar会将扫描信息持久化到mysql中。
docker run --restart=always -d --name sonarqube
-p 9000:9000
-e sonar.jdbc.username=root
-e sonar.jdbc.password=123456
-e sonar.jdbc.url=jdbc:mysql://172.30.50.215:3306/payment? useUnicode=true&characterEncoding=UTF-8
\ sonarqube
四,安装sonar-scanner
1,安装SonarScanner
SonarScanner地址:https://docs.sonarqube.org/latest/analyzing-source-code/scanners/sonarscanner/
或使用docker下载sonar-scanner
$ docker pull sonarsource/sonar-scanner-cli:latest
#----- Default SonarQube server
sonar.host.url=http://127.0.0.1:9000
#----- Default source code encoding
#sonar.sourceEncoding=UTF-8
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
useConfigs=maxPerformance
sonar.sourceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
五,使用sonar扫描代码
1,登录进入sonar页面后,点击创建一个项目
2,点击 manually(手动的),这里也可以选择github,在项目中使用git关联sonar可以更方便的扫描代码分支。
3,然后随便输入一个project名称,这里建议与项目名称相同。
4,随便输入一个什么(建议与项目名称相同),生成一个token。生成后点击continue,继续。
5,进入到需要扫描的服务
sonar-scanner \
-Dsonar.projectKey=mss-dhr-integration-test
-Dsonar.sources=. \ -Dsonar.host.url=http://localhost:9000
-Dsonar.login=sqp_c418158c16fe197504c950ab06f5282663c40e20 -Dsonar.login=“admin” -Dsonar.password=“admin123”
-D sonar.java.binaries=/Users/xuxukai/Documents/yygxproject/mss-dhr-integration-test/mss-dhr-integration-test/dhr-biz-cadre/target/classes
(根据我们的项目选址maven或者gradle,或者其他。sonar会在下方自动给出扫描代码的命令。然后打开我们的idea,在下方命令行执行。这里有一个坑点,由于sonar会去target目录下扫描我们的class文件,所以要先将项目打包)