静态代码分析 之 如何在团队中使用sonar来检查代码

胡言乱语:

大家应该都知道一件事情,越早的发现问题,问题所带来的风险将会越少。所以静态代码分析对于我们来说绝对是成本最低的代码控制工具,


背景:

在我的团队中,我所提倡的是四套静态代码分析工具,findbugs,checkstyle,lint,sonar

每个功能都不同,我也在前面的博客中都有所涉及,本章主要来介绍sonar如何在团队中使用。


原因:静态代码分析工具是个好东西,但是项目的引入经常会带来团队工作量的增加和学习成本的增加,尤其是像sonar这种比较重的静态代码分析工具,所以我们作为团队的领导者,有责任和义务来降低成本。


我主要做了以下几件事:

1.在内网中搭建了一个 apache  + PHP的服务器,

2.在我的服务器中下好我们工程的代码,

3.提供一个入口网页让团队成员使用,

4.展现静态代码分析结果,


废话少说,上图看效果。


第一步:打开网址:http://10.101.44.76/codereview.php

第二步,选择集成代码检查(我们会在feature分支开发,每天会将feature分支修改集成到集成分支之后,进行检查)

第三步:输入需要检查的分支名-》开始检查(全量代码检查,时间较长)

第四步:在15分钟左右的时间之后,查看分析报告

第五步:查看报告(只查看Qualite Gate中的内容即可,该部分为上次版本与这次版本之间引入的问题)


这个是进行全量的代码检查,所以时间比较大,集成时使用适合。
上面没有介绍的另一种:代码review检查(单次提交)
静态代码分析 之 如何在团队中使用sonar来检查代码_第1张图片
可以看到基本类似,只是多了一个commid_id

这个的目的是只会检查我们提交的文件,所以需要根据commit_id获取到我们的修改文件列表。
其他的使用方式与上面介绍的一样。

到这里就完成了我们团队拥有的自己的sonar工具,不需要学习成本,和安装成本,登陆网站一下子就搞定了。


下面介绍一下如何实现的,具体细节不会特别详细,主要讲一下思路,有想了解的细节,再沟通

1.构建自己的LAMP服务器,这个是环境的配置,网上一找一大堆
在mac上使用MAMP瞬间完成,但是在LAMP上各种坑,这里说几个坑,
1)配置之后,在网址上链接http://localhost/***.php的时候,找不到,apache服务器在运行的时候,不仅对路径是有要求的,同一个路径下不同文件也是有区别的,修改文件夹apache组权限,而且有些文件要自己创建,否则copy过来的指不定有什么问题,

2.apache调用shell执行java -jar的时候,无法执行java命令,很崩溃
原因:apache也是需要配置java环境变量的,1.配置apache的path,java_home,class_pash这些环境变量  2.关闭防火墙  3.修改文件夹的拥有者

3.shell脚本的一些小细节,我对shell的掌握还停留在通过baidu可以写出我想要的东西,但是耗费了一些时间,在apache中执行shell和在命令行中执行有区别的,很多执行文件需要绝对路径才能找到

4.查看你本地是否配置了path,java_home,class_path ,在命令行中echo $PATH看一下,我就犯了低级错误,没有配置JAVE_HOME导致发生了一些错误,因为apache是使用java_home 来匹配的

感觉做的时候遇到了很多坑,怎么总结的时候,就这么几条。哎。。。。

2.构建自己的网页,有button和输入框,实现我们上面的页面,增加一个跳转逻辑

3.通过php调用shell

4.shell才是我们干活的
    1)切换到分支,强行拉取最新代码
    检查单次提交需要增加的步骤                 2)根据提交的commit_id,提取出修改的文件,去掉空格和无用字符之后,替换掉sonar.sources=  后面的值
    2)替换sonar-project.properties中的version,sources,name,key,(其中原因大家想想就知道了)
    3)执行sonar脚本,进行代码检查


搞定,其实看看实现细节是不是很简单啊,但是在做的时候,花费了好几天的时间,其实如果不考虑环境布局的影响,应该一天就能搞定的。

你可能感兴趣的:(静态代码分析 之 如何在团队中使用sonar来检查代码)