SonarQube(简称Sonar)是管理代码质量的开放平台,它可以快速地对代码质量进行分析,并给出合理的解决方案,提高管理效率,保证代码质量。官网,文档
Sonar Scanners:是用于将项目发布到Sonar进行审查的工具。也可以不用该工具。官网
SonarLint:是Eclipse,IDEA中的Sonar插件
SonarQube工作流程如上图:
jdk 1.8版本
sonarqube 7.6 downloads
SonarQube+Scanner downloads
数据库,Sonarqube支持Mysql、PostgreSQL,SqlServer、Oracle等,选择合适的数据库,创建相应sonar库,设置用户名、密码,设置用utf-8编码
将安装包上传到服务器,并且解压到/data目录下:
#cd /data
#unzip sonarqube-7.6.zip -d /data/sonarqube
#cd /data/sonarqube/sonarqube-7.6/conf
#vi sonar.properties
修改:数据库配置,以及数据库用户名,密码,这里用的数据库是PostgreSQL,具体内容如下
#chmod -R 755 /data/sonarqube/sonarqube-7.6/
#cd /data/sonarqube/sonarqube-7.6/bin/linux-x86-64
#./sonar.sh start
浏览器访问:http://localhost:9000(管理员:admin,密码:admin)。如访问失败,则可以在 ../logs/sonar.log 文件中查看日志。
汉化包github(参照兼容列表说明,下载SonarQube版本对应的插件,这里是:sonar-l10n-zh-plugin-1.26.jar)。
放入sonar如下目录: sonarqube-7.6\extensions\plugins
然后重启sonar就可以了。
安装服务
如果是windows机器,可以打开 StartSonar.bat 文件所在目录,运行文件 InstallNTService.bat 将Sonar安装为服务
从官网可以看到,SonarQube支持以下方式来进行项目的扫描;
如果本地未搭建开发环境,此时使用SonarQube scanner就很方便
修改配置文件
在sonar-scanner.properties中配置对应的sonar.host.url 、sonar.sourceEncoding
修改环境变量
export SCAN_HOME=/data/sonarqube/sonar-scanner
export PATH=$PATH:$SCAN_HOME/bin
修改项目配置文件
在项目根路径下创建sonar-project.properties、配置信息如下:
sonar.projectKey=sonarScannerTest
sonar.projectName=sonarScannerTest
sonar.version=1.0
sonar.sources=src
sonar.binaries=bin
sonar.language=java
sonar.sourceEncoding=UTF-8
<settings>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://loaclhost:9000
</sonar.host.url>
</properties>
</profile>
</profiles>
</settings>
注意:直接加进去会报错,将<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>添加到文件原有的<pluginGroups></pluginGroups>中,将
运行编辑器的命令窗口,在项目根目录下执行:
mvn clean verify sonar:sonar
或者
mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.6.0.1398:sonar -Dsonar.scm.provider=git
执行成功的话,访问SonarQube查看项目扫描结果。
遇到报错:SCM provider autodetection failed. Both svn and git claim to support this project. Please use sonar.scm.provider to define SCM of your project.
在命令中添加参数 -Dsonar.scm.provider=git就好啦~
<!-- build.xml -->
<project name="My Project" default="all" basedir="." xmlns:sonar="antlib:org.sonar.ant">
...
<!-- Define the SonarQube global properties (the most usual way is to pass these properties via the command line) -->
<property name="sonar.host.url" value="http://localhost:9000" />
<!-- Define the SonarQube project properties -->
<property name="sonar.projectKey" value="org.sonarqube:sonarqube-scanner-ant" />
<property name="sonar.projectName" value="Example of SonarScanner for Ant Usage" />
<property name="sonar.projectVersion" value="1.0" />
<property name="sonar.sources" value="src" />
<property name="sonar.java.binaries" value="build" />
<property name="sonar.java.libraries" value="lib/*.jar" />
...
<!-- Define SonarScanner for Ant Target -->
<target name="sonar">
<taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
<!-- Update the following line, or put the "sonarqube-ant-task-*.jar" file in your "$HOME/.ant/lib" folder -->
<classpath path="path/to/sonar/ant/task/lib/sonarqube-ant-task-*.jar" />
</taskdef>
<!-- Execute SonarScanner for Ant Analysis -->
<sonar:sonar />
</target>
在项目根目录下执行如下命令
ant sonar
执行成功的话,访问SonarQube查看项目扫描结果。
使用SonarQube扫描仪分析MSBuild
使用SonarQube扫描仪分析Azure DevOps
没用过,待补充
原文:https://www.cnblogs.com/liuyitan/p/13157042.html