SonarQube平台搭建
SonarQube是基于浏览器的BS架构的代码质量管理平台,通过对源码的分析,依赖规则分析得到不同级别的代码问题。
主要是基于官方文档的Quick Start部分,这个部分使用内嵌数据库,届时会有一个提示,大意是用于演示功能且不支持升级。如果要搭建Product,则需要依赖外部数据库。
缺陷分类:
Bug
Code Smell
Vulnerabilities
缺陷级别:
Blocker
Critical
Major
Minor
Info
1.环境要求:
1.1. 操作系统
- Windows
- Linux(本文使用CentOS 6.4 64bit,ip:192.168.1.154)
- MacOS
1.2. SonarQube6.2
- sonarqube-6.2.zip
- sonar-scanner-2.8.zip
- sonar-scanning-examples-master.zip
1.3. java
Oracle JRE8+/OpenJDK 8+(本文使用Oracle JDK8 bit)
1.4. 数据库(在quick start部分可以不安装)
- 2012 (MSSQL Server 11.0)/ 2014 (MSSQL Server 12.0)
- MySQL5.6/5.7
- Oracle11G/12C (需要自备数据库驱动包,放在 /sonarqube/extensions/jdbc-driver/oracle 下)
- PostgreSQL8.x/9.x
1.5. 浏览器
- IE11
- Firefox
- Chrome
- Safari
2.迅速安装(Get Started in Two Minutes)
将sonarqube-6.2.zip和sonar-scanner-2.8.zip解压到/usr/local/sonar下。cd /usr/local/sonar/sonarqube-6.2/bin/linux-x86-64
执行 ./sonar.sh console &
看到SonarQube is up 则说明启动成功。
另外,还有标准安装(product instance),需要配合数据库一起使用。
3.访问
在浏览器中输入 http://192.168.1.154:9000 即可访问,默认的用户名/密码:admin/admin
4.解析项目
4.1. 使用sonar scanner
解压sonar-scanner-2.8.zip,将bin目录加入环境变量。
修改$SONAR_SCANNER_HOME/conf/ sonar-scanner.properties,将sonar.host.url修改为sonar的ip。
在需要解析的项目下执行
sonar-scanner.bat #windows sonar-scanner #linux
直接执行上面的命令会报错:You must define the following mandatory properties for 'Unknow': sonar.projectKey, sonar.sources
# 需要指定projectKey 和 sources
sonar-scanner -Dsonar.projectKey=testForSonar -Dsonar.sources=/home/sonar/testFor/Sonar/src
#或者新建配置文件 sonar-project.properties
sonar.projectKey=testForSonar
sonar.sources=/home/sonar/testFor/Sonar/src
4.2. 使用maven3.x
客户端安装MAVEN(即存放有代码的机器,使用sonar-scanning-examples-master/ sonarqube-scanner-maven这个样例或自己真实的maven项目)
修改$MAVEN_HOME/conf/settings.xml,添加以下内容,注意修改sonar.host.url的ip
<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://192.168.1.154:9000
</sonar.host.url>
<sonar.scm.disabled>true</sonar.scm.disabled>
</properties>
</profile>
</profiles>
</settings>
在maven项目根目录中或IDE中执行
mvn clean verify sonar:sonar #看到BUILD SUCCESS则代表成功,第一次执行会下载相关依赖
在浏览器中,点击projects的All标签,即可看到。
4.3. 使用ant1.7.1+
下载ant sonar task
https://sonarsource.bintray.com/Distribution/sonarqube-ant-task/sonarqube-ant-task-2.4.jar,放入$ANT_HOME/lib下。
编辑项目中的sonar-scanning-examples-mastersonarqube-scanner-antbuild.xml文件,修改sonar.host.url为sonar的ip。
在当前项目路径或IDE中执行
ant sonar
看到BUILD SUCCESSFUL 则代表成功。
在浏览器中,点击projects的All标签,即可看到。
4.4. 其他
另外支持Gradle和Jenkins,可以加入CI。
5.5. 报错
Error when executing blame for file
svn:E170001:Authentication required for svn://ip:port 
修改上文中提到的$MAVEN_HOME/conf/settings.xml
<sonar.scm.disabled>true</sonar.scm.disabled> --如果此處不設置,會通過svn訪問,這時候無權限。
安装product instance可能遇到的问题:
启动以后使用浏览器访问,提示:sonarqube is under maintenance
按照网上提供的方法,需要访问 192.168.1.154:9000/setup ,按照提示更新数据库。乌鸦并没有解决问题。
因为乌鸦安装product instance时,安装5.6.6TLS和6.2时出现了上述问题,只好改装最新的6.3.1,成功安装。
官方文档:
https://docs.sonarqube.org/display/SONAR/Documentation
Scanner Maven:
https://docs.sonarqube.org/display/SONARQUBE52/Installing+and+Configuring+SonarQube+Scanner+for+Maven
Scanner Ant:
https://docs.sonarqube.org/display/SONARQUBE52/Installing+and+Configuring+SonarQube+Scanner+for+Ant
sonarqube-ant-task.jar
https://sonarsource.bintray.com/Distribution/sonarqube-ant-task/sonarqube-ant-task-2.4.jar
Code Smell:
https://en.wikipedia.org/wiki/Code_smell#cite_note-:0-1
SVN ERROR:
http://fanli7.net/a/caozuoxitong/Linux/20160616/565021.html
本文链接:http://bigerhead.com/2017/03/348.html 转载请注明出处。