sonar是一个代码检查和报表集中展示的工具,使用sonar,首先需要安装一个sonar服务器。
安装Sonar服务
1. 安装Mysql数据库
1.1 yum install MySQL-server -y
1.2 mysql -uroot -p
DROP DATABASE sonar;
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;
2. 安装sonar
2.1 cd /opt
wget http://dist.sonar.codehaus.org/sonarqube-4.3.1.zip![]()
unzip sonarqube-4.3.1.zip
ln -s sonarqube-4.3.1 sonar
2.2 vi /opt/sonar/conf/sonar.properties
sonar.web.port=80
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
3. 配置jenkins
Sonar可以配合jenkins持续集成系统使用,让jenkins的job自动与sonar服务器建立联系,实现自动的代码分析和报表输送。
3.1 安装最新的 jenkins系统
3.2 为jenkins安装 sonar 插件
3.3 配置jenkins sonar
3.4 配置jenkins sonar runner
[sonar 配置实例]
jdbc:mysql://10.224.37.163:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
sonar
sonar
com.mysql.jdbc.Driver
4. 创建 jenkins job
4.1 在jenkins创建一个job.
4.2 增加一个新的 "Build Step" - "invoke standalone sonar analysis"
4.3 在config 里面填入 "Project properties"
[sonar runner 配置实例]
sonar.projectKey=csgias-key
sonar.projectName=csgias
sonar.projectVersion=1.0
sonar.sources=src/main/java
*projectKey是自定义的项目关键字,告诉sonar服务器你的项目标识符。projectName是项目的显示名称。projectVersion是版本。这三项都是自定义的。
sonar.sources指定要分析的代码位置,是相对于jenkins的workspace目录。例子中已经使用subversion将代码下载到当前的工作目录,代码目录下是src/main/java这样的结构。
4.4 保存并执行job,sonar runner会从sonar服务器拉取规则,然后分析sonar.sources指定的目录下的代码,然后将结果推送到sonar服务器。
5. 配置sonar服务器上的LDAP authentication
5.1 安装LDAP plugin
5.2 配置 sonar properties
#vi [sonar.home]/conf/sonar.properties
加入以下行:
#----------------------
# LDAP authentication
sonar.security.realm=LDAP
sonar.security.savePassword=
false
ldap.url=ldap:
//ldap.test.com:389
# User Configuration
ldap.user.baseDn=O=test.com
ldap.user.request=uid={
0
}
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail
|
5.3 重启 sonar server
使用Maven来自动进行sonar分析和报告发布。
很多java项目都是用maven管理。使用maven命令可以很方便的执行sonar分析,并发布分析报告到sonar服务器。
首先是配置maven,告诉maven你使用的sonar服务器的相关信息。
vi $MAVEN_HOME/conf/settings.xml
<
profile
>
<
id
>sonar</
id
>
<
activation
>
<
activeByDefault
>true</
activeByDefault
>
</
activation
>
<
properties
>
<
sonar.jdbc.url
>
jdbc:mysql://[sonar_db_host]:3306/sonar?useUnicode=true&characterEncoding=utf8
</
sonar.jdbc.url
>
<
sonar.jdbc.driver
>com.mysql.jdbc.Driver</
sonar.jdbc.driver
>
<
sonar.jdbc.username
>sonar</
sonar.jdbc.username
>
<
sonar.jdbc.password
>sonar</
sonar.jdbc.password
>
</
properties
>
</
profile
>
|
例如你在jenkins服务器上建立分析代码的maven job,那么执行这个job的server上,必须有maven,且加入以上的配置。
然后只需要配置job里面执行以下命令:
mvn clean cobertura:cobertura sonar:sonar
此maven项目就会自动执行代码分析并发布报告。
在sonar服务web页面上看到的分析报告如下:
*此外,还需要配置sonar以支持cobertura coverage,以此工具分析java项目的单元测试代码覆盖率。
http://docs.codehaus.org/display/SONAR/Cobertura+Plugin![]()
在sonar服务器web页面的 Update Center安装此插件,或者下载并保存到 SONARQUBE_HOME/extensions/plugins 目录
使用Maven进行sonar分析后,默认的 XML Cobertura 报告位置在 : target/site/cobertura/coverage.xml . 可以在 Settings > General Settings > Java > Cobertura 中改变此设置。
重启SonarQube 服务。
本文详细介绍了如何安装和配置Sonar服务,包括安装Mysql数据库、安装Sonar、配置Jenkins以实现自动代码分析和报表发布,以及设置Sonar服务器上的LDAP认证。通过Maven进行Sonar分析和报告发布,确保代码质量管理和持续集成。

902

被折叠的 条评论
为什么被折叠?



