Sonar实战【开源代码质量管理平台】

简介: 随着项目的展开,代码的质量需要定期的检查,除了Code Review外,使用工具进行定期的检查规范等很重要,Sonar就是这样一个平台。 介绍 Sonar是一个开源代码质量管理平台。以下是它的主要特点: 代码覆盖:通过单元测试,将会显示哪行代码被选中 改善编码规则 ...

随着项目的展开,代码的质量需要定期的检查,除了Code Review外,使用工具进行定期的检查规范等很重要,Sonar就是这样一个平台。

介绍

Sonar是一个开源代码质量管理平台。以下是它的主要特点:

  • 代码覆盖:通过单元测试,将会显示哪行代码被选中
  • 改善编码规则
  • 搜寻编码规则:按照名字,插件,激活级别和类别进行查询
  • 项目搜寻:按照项目的名字进行查询
  • 对比数据:比较同一张表中的任何测量的趋势

wps_clip_image-30921

安装

http://www.sonarsource.org/ 下载安装文件,解压到任意目录,执行对应32/64的 StartSonar.bat,默认在9000端口启动一个服务

Java项目实战

http://docs.codehaus.org/display/SONAR/Use+Sonar 有详细的文档,最快的方法是如下的形式

 

项目使用maven管理比较方便使用

1、http://docs.codehaus.org/display/SONAR/Analyse+with+a+simple+Java+Runner#AnalysewithasimpleJavaRunner-Installation 下载Sonar Runner并解压,将解压目录加入PATH中【以能找到sonar-runner.bat这个运行文件】

2、项目目录下放置如下的文件sonar-project.properties

# required metadata

sonar.projectKey=com.demo:mydemo

sonar.projectName=demo

sonar.projectVersion=1.0

# path to source directories (required)

sources=src/main/java

# path to test source directories (optional)

#tests=testDir1,testDir2

# path to project binaries (optional), for example directory of Java bytecode

#binaries=binDir

# path to project libraries (optional)

libraries=junit.jar

#Uncomment those lines if some features of java 5 or java 6 like annotations, enum, ...

#are used in the source code to be analysed

#sonar.java.source=1.5

#sonar.java.target=1.5

#Uncomment this line to analyse a project which is not a java project.

#The value of the property must be the key of the language.

#sonar.language=cobol

# advanced parameters

#my.property=value

以上是一个简单的配置,更详细的配置可参考 http://docs.codehaus.org/display/SONAR/Advanced+parameters

 

3、项目目录下执行sonar-runner,此时进行相应各种处理

4、进入http://localhost:9000 查看结果,类似如下

wps_clip_image-31025

可以看到项目的代码量、类分布等等各项指标,这个软件集成了很多的Java的一些开源的分析、测试等工具,因此具体的功能很丰富

Eclipse

如果在Eclipse中使用,参考如下的内容安装即可

http://docs.codehaus.org/display/SONAR/Installing+Sonar+Eclipse

Update site

http://dist.sonar-ide.codehaus.org/eclipse/

Eclipse Marketplace

http://marketplace.eclipse.org/content/sonar

http://nemo.sonarsource.org/

http://docs.codehaus.org/display/SONAR/1.+Install

Eclipse增强包括可以在本地进行分析

 

总结

Sonar作为一个平台,可以在服务端运行,并记录每次的质量情况,因此可以进行项目的代码质量的跟踪

如果只是本地分析 CodePro AnalytiX 这个开源的工具也很好用【参考http://code.google.com/intl/zh-CN/javadevtools/download-codepro.html

 

这个工具对于其他语言也提供了支持,官网列了很多,http://docs.codehaus.org/display/SONAR/Additional+Languages

比如Csharp的分析,就集成了Fxcop StyleCop等各种工具,不过相对java来说,工具还是少一些,和VS Team foundation想必,对于代码的管理有很多优点,实际项目中可以作为这个tfs的补充使用【可以量化的看到代码的演变历史】

相关文章
五分钟带你玩转sonar(五)教你使用SonarLint插件
五分钟带你玩转sonar(五)教你使用SonarLint插件
4995 0
五分钟带你玩转sonar(五)教你使用SonarLint插件
|
Web App开发 安全 iOS开发
TrollStore巨魔商店永久安装APP 可实现IOS应用双开 安装任意APP
TrollStore 是一个永久签名的监禁应用程序,可以永久安装您在其中打开的任何 IPA。
13485 0
|
Java p3c
sonar入门:使用阿里规范扫描代码质量
sonar入门:使用阿里规范扫描代码质量
2119 0
sonar入门:使用阿里规范扫描代码质量
|
4月前
|
Java Android开发
安卓手机硬改工具, 设备型号修改神器, 安卓硬改一键新机
通过Java创建可执行JAR来修改安卓设备信息。核心功能包括读取系统属性
|
6月前
|
机器学习/深度学习 算法 PyTorch
10招立竿见影的PyTorch性能优化技巧,让模型训练速度翻倍
本文系统总结了PyTorch性能调优的关键技术,涵盖混合精度训练、PyTorch 2.0编译功能、推理模式优化、Channels-Last内存格式、图优化与变换、cuDNN基准测试、内存使用优化等多个方面。通过实证测试,文章详细分析了各技术的实现细节、优势及适用场景,如混合精度训练可显著提升计算效率和内存利用率,torch.compile()能自动优化代码生成以加速模型运行。此外,还探讨了推理模式的选择、卷积操作优化及模型构建的最佳实践。这些方法结合良好的编码习惯,有助于开发者构建高效、可扩展的深度学习应用。
362 3
10招立竿见影的PyTorch性能优化技巧,让模型训练速度翻倍
|
人工智能 搜索推荐 机器人
Rasa: 帮助企业更快搭建“AI对话助手”的低代码平台
【2月更文挑战第24天】Rasa: 帮助企业更快搭建“AI对话助手”的低代码平台
440 2
Rasa: 帮助企业更快搭建“AI对话助手”的低代码平台
|
算法 JavaScript 前端开发
Fitten Code:自动生成代码注释工具
【9月更文挑战第02天】
1497 7
|
12月前
|
网络协议 安全 生物认证
一文带你从了解到精通Nmap扫描器
一文带你从了解到精通Nmap扫描器
|
前端开发 JavaScript NoSQL
从前端到后端:构建全栈开发的技术生态
本文将探讨如何在全栈开发中构建完整的技术生态,从前端到后端各个层面进行深入剖析,讨论不同技术之间的协作与整合,为开发人员提供全面的指导与启示。