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

Java架构语言 & 开发文化 & 方法