sonar教程——本地扫描

​​本地扫描指的是在开发人员本机的eclipse上安装sonar插件,利用sonar插件在eclipse中快速进行代码静态扫描。与使用sonar-runner客户端执行sonar扫描的方式相比,因为本地扫描省略了源代码导入、违规​项写入数据库等操作,所以在扫描速度上要快很多,很适合开发人员在check in代码之前执行,尽早发现编码缺陷,以便及时修复。

一、安装sonar插件​​​​

1、​点击eclipse主菜单中Help > ​Install New Software...​ ​​打开Install​窗口。​​​

​​2、​​​把升级站点URL“http://dist.sonar-ide.codehaus.org/eclipse/​”粘贴到“Work with”输入框中,然后按回车键(Enter)​​。下方将显示出​可用的插件和组件。

install-sonarqube-eclipse.png 

如果访问该网址太慢,也可以直接从文件服务器上下载sonar插件的压缩包到本地,选择从本地安装的方式安装插件。下载方式为使用user1用户(使用SSH Secure File Transfer软件),从10.25.204.100服务器上下载整个/vmp/vmdata/software/ci-pkg/sonar/sonar-plugin-3.4.0目录到本地(例如D:\tmp\sonar-plugin-3.4.0),user1用户的密码是Pa888888。从本地安装时,上述的“Work with”框中填写file:/D:/tmp/sonar-plugin-3.4.0,然后同样是按回车。

3、勾选第二个“SonarQube Java​​​​​”,然后点击“Next>”按钮,eclipse开始检查是否可以成功安装插件。​​

4、点击“Finish”按钮开始安装,eclipse将下载并安装必要的组件。

5、安装过程结束后,eclipse将询问你是否要重启eclipse,强烈建议选“Yes”。

​6、重新启动eclipse,点击"Window——Preferences",可以看到已有sonar的配置项。如果本地的eclipse版本太低,可能出现sonar插件安装好以后,看不到sonar配置项的情况,此时需要安装最新版本的eclipse,然后再重新安装sonar插件。

​​ 2014-05-21_14-10.PNG

​​点开SonarQube,选中Servers。然后选中右边缺省的"http://localhost:9000",再点"Edit..."按钮。

2014-5-21-141404.PNG

"Sonar server URL"处填写"http://10.20.12.110","Username"处填写域账号,"Password"处填写域账号的密码。然后点击"Test connection"按钮,正常情况下左上角将显示"Successfully connected!",点击"Finish"按钮保存设置。

​接下来要添加一个本地扫描的属性“sonar.buildbreaker.skip”,将其设置为true,以便在进行本地扫描的时候,当新增违规项或新增重复代码时,跳过“break build”这一步骤。如果不配置此属性,本地扫描时可能会提示“Alert thresholds have been hit”​,并且不会刷新本地扫描的结果。

点击“Preview Analysis Properties”,然后点击右边的“New...”,添加该属性,值设为“true”。

2014-5-21-141705.PNG 

如果是android项目,还需要添加一个属性“sonar.profile=PAAndroidCodeHealth​”,用来指定android项目专用的配置文件。

二、执行一次全量扫描​​​

在执行本地扫描之前,需要先执行一次全量扫描。正常情况下推荐在jenkins平台上配置本子系统的开发流sonar扫描job,并成功运行一次(​参照《在Jenkins中配置sonar扫描​》操作)。特殊情况下不方便在jenkins平台上配置job,可以使用sonar-runner执行全量扫描。请参照《如何运行代码扫描​》操作。

三、将本地项目与sonar关联​​

在"Package Explorer"中用鼠标右键单机进行本地扫描的项目,在弹出的菜单中点击"Configure——Associate with SonarQube..."。

在弹出的窗口中点击"<Click here to start searching for a remote SonarQube project...>"​

2014-5-21-142116.PNG 

然后输入sonar-project.properties文件中sonar.projectName属性值的前几个字母(大小写无关),系统将自动搜索出匹配的项目。

双击正确的项目名,Sonar project处将显示出项目名称和sonar.projectKey值,此时点击"Finish"按钮即可完成关联。

2014-5-21-142301.PNG

四、执行本地扫描​

在Package Explorer中,右键单击要执行本地扫描的project,在弹出菜单中依次点击"SonarQube——Analyze"。


在扫描过程中,如果项目中代码很多,可能会出现内存溢出错误“ Exception in thread "CLEANUP_MANAGER" java.lang.OutOfMemoryError: Java heap space”此时需要修改sonar插件配置,添加-Xmx参数,例如:
sonar-2.PNG

五、查看扫描结果​​​

本地扫描完成后,可以在sonar的Violations视图中查看本次扫描出来的所有违规项。点击eclipse的window菜单,依次点击"Show View——Other..."

20131115-1.PNG

选择"Sonar"目录下的Sonar Issues,然后点击OK按钮(相同目录下的Sonar Web Browser视图用来查看远程sonar平台上的扫描结果)。

20131115-2.PNG

猜你喜欢

转载自blog.csdn.net/rangqiwei/article/details/38400177
今日推荐