InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Sonar 2.4:架构约束规则与Maven 3支持​

作者 Srini Penchikala 译者 丁雪丰 发布于 2010年12月21日

领域
过程 & 实践,
架构 & 设计,
语言 & 开发
主题
代码质量 ,
Java ,
代码分析 ,
质量 ,
工件和工具 ,
语言 ,
工具 ,
调试 ,
软件工匠 ,
敏捷 ,
编程 ,
声明 ,
架构

开源代码质量管理工具Sonar的最新版本支持Java项目的架构约束规则和自定义​仪表盘​。​SonarSource团队上个月发布了Sonar 2.4,新版本中有四项主要特性。

架构规则:架构约束规则允许开发者定义​基于模式的规则​,拒绝不同包中类之间的引用​。​模式的例子包括拒绝从*.dao.*类中访问*.web.*,或者决绝在任何类中​访问java.util.Vector、java.util.Hashtable和java.util.Enumeration。当项目源代码​遵循一组架构约束时,会用架构模型进行编译,使用该规则需要Java字节码分析​。​

自定义仪表盘:Sonar用户现在可以为公司内的不同​利益相关人(例如管理者、开发者等)创建并定制仪表盘。定制的过程包括选择一个布局、添加组件和放置组件。管理员可以和所有用户分享仪表盘,选择默认显示的仪表盘。今后的Sonar工具将会包含新的仪表盘组件​,基于用户角色来访问项目仪表盘。​

更新中心:可以使用新的更新中心来安装与升级插件。用户还可以从中获取已安装插件的信息、验证兼容性、检查Sonar新版本和自动管理插件兼容性矩阵

新版本的Sonar还支持使用Maven 3来构建应用程序、进行代码分析。InfoQ就Sonar的新特性采访了Sonar团队的Olivier Gaudin。​

InfoQ:架构规则下一步会做怎样的增强?

在这个初始版本中,架构规则引擎已经提供了定义简单规则的能力,例如“类/包A不应该用在类/包B中”。它自然进化的结果就是能通过DSL来表达复杂的规则,以此来定义架构层,举个例子:只有层B或层C能使用层A。Sonar中加入了这个功能后,需要使用外部工具来监控设计的情况就很少了。

InfoQ:Sonar项目今后的线路图是如何规划的?

我们的主要目标是让平台能完整支持持续检查(Continuous Inspection)​的各个方面​,提供开发团队度量的能力,以此管理技术债务。我们识别了3个领域,下一步是​增强这方面的支持:​
  • 下一步,在Sonar 2.5中,当有冲突加入源代码时,会有更好的跟踪支持,仪表盘中会有不同视图。
  • 为平台添加手工代码审查能力,可以添加、抑制、注释和讨论质量缺陷。
  • 在sonar-eclipse插件中嵌入一个轻量级的Sonar,以便在代码提交SCM前进行代码审查。
与此同时,我们会继续使用SonarSource开发的解析技术来添加新语言,加强现有语言,比如向C和Cobol中添加新规则。

查看英文原文:Sonar 2.4: Architecture Constraint Rules and Maven 3 Support

译者 丁雪丰 是InfoQ中文站编辑,满江红翻译组核心成员,出版过《Spring攻略》、《JRuby实战》等多部译著。主要关注领域:企业级应用、海量数据计算、动态语言应用等。