SonarSource简介
系统集成商、外包和应用程序服务提供商在如何向其客户提供下一级别的价值方面不断受到挑战。在评估有竞争力的产品时,他们寻找的是:品质特征分析提供(如死代码分析、影响分析、跨平台分析)。***白皮书在服务、解决方案和软件交付方面的***是一个关键的重点领域, 关键是寻找和利用能够为客户提供重要价值的工具, 并帮助引导他们走向成功, 并协助进行内部过程改进。此 IDC 技术聚焦讨论了服务提供商的策略, 以改进软件分析、缺陷管理、安全性和度量的方法, 从而通过主动可见性来获得业务和 IT 好处。提供商业价值的差异化服务是赢得未来业务的关键。服务提供者应该定位自己, 并证明它们是客户 IT 和业务组织之间***的 "质量门"。
SonarQube 平台
SonarQube 是一个连续的质量分析平台, 它作为 web 服务器运行, 跟踪指标
分析代码和代码结构。SonarQube 是一个开源平台, 并被开发
牢记一个主要目标: "使代码质量管理可供每个人使用
***xiao的努力。SonarQube 生态系统是由 SonarQube 平台和一套
plug-ins 在公共基础设施上担任东道主。
SonarQube 实质上提供了代码分析器、仪表板、报告工具、问题跟踪和
TimeMachine 作为***功能, 但它也有一个插件机制, 使社区能够
扩展功能 (当前有超过 60 plug-ins 可用)。
SonarQube 可以成为源代码质量的协调中心, 因为它不需要
限于开发人员或技术娴熟的, 但可以提供有用的信息广泛
项目经理, 技术领导, IT, 甚至在一个组织内的业务领导
可自定义的仪表板。SonarQube 的建筑和 plug-ins (如 SQALE) 和
管理和跟踪技术债务的机会可以为管理人员提供关键信息和
业务在整个软件生命周期中反复地主动地解决缺陷。他们提供
与质量和成本有关的项目的***概述, 并帮助解决风险。
SonarQube 提供的不仅仅是关于软件健康的***指标。由于开发人员
提供了一个粒度代码级别的信息, SonarQube 使这些构建软件
查找并深化到存在代码问题的位置。SonarSource 的产品组合使
对软件变更领域的反馈和影响分析, 并提供反馈, 说明如何
改进开发方法。产品还提供与构建管理的协调
(与詹金斯的支持), 以帮助实现持续集成的部署。
SonarQube 集成的工具, 如 FindBugs, Checkstyle, PMD, FXCop的, C的p的p的Check 出 of-the-box,
或提供 plug-ins。然后, 它可以充当代码分析工具的中心中心,
从而为多个项目提供历史洞察力和趋势分析。一体化的地方
分析和报告是一个加号, 即使组织选择不对发送的报告采取行动。
可以访问有关代码复杂性的历史数据和发现的问题工具的数量
该代码可以提供是否有效地构建软件的可视性, 或者如果方法
需要改变。
在语言方面, SonarQube 支持分析 Java 的***, 但也有超过20
语言, 如 COBOL、c++、PL/SQL 和 c# 通过 plug-ins (开源或商业)
因为报告引擎是语言不可知的。
SonarQube 使组织能够在七轴上覆盖质量并报告:
?重复代码
?编码标准
按单元测试?覆盖范围
?复杂代码
?潜在 bug
?评论
?设计与体系结构
***xin版本还改进了软件质量属性的评估, 并
一个更好的工作范围的技术债务和孤立的问题, 创造技术债务,
根据参考。SonarQube 是可配置的, 可以给代码一个 "等级" (从 a 到
E), 并可以确定它通常在努力和所需的工作类型方面的成本
改进软件。例如, 由于缺少单元测试, 代码可能有较低的评级, 或者
由于大量的重复代码或安全违规。SonarQube 将显示
违规行为是并将估计解决这些问题的费用。用户可以更改工作量估计和
他们会被计算在内, 这是有帮助的。此版本还可以使比较团队
根据需要对项目和组织的各个部分进行评估。
虽然 SonarQube 可以在战shu上用于一次性审计, 但它可以更具战略性地利用
作为一个共享的, 共同的信息来源的质量分析正如刚才所描述的, 以帮助
支持代码质量的持续改进策略。
各种各样的组织使用 SonarQube 提供的产品组合的范围 (从
本公司的免费 "开源" 选项给企业, 站点范围内的 "终ji" 许可版本)。
然而, 目标在***是大和非常大公司与企业, 分布
开发团队和合作伙伴协调。一人团队可以使用开源版本
显然, 这可以作为一个坡道上的收养。但一旦一个组织越过
在开发项目和用户的数量方面, 需要移动到
商业企业解决方案。IDC 发表了三企业客户参考
SonarQube, 主要是开始开放源码收养, 获得立足点, 然后演变
到部署1000以上的用户。
SonarSource
实现和好处的典型大小
大型国际组织可以对1万多个项目进行分析, 并
分析650–700万行代码在14种语言与8000访问一天在网站上。
IDC 的一位客户正在跟踪1200项目, 其中有1.6亿行代码
通过 SonarQube 扫描, 再加上另外的300项目, 还有1.6亿行代码
被扫描。
另一位客户从二十几个项目到现在已注册的2230多个项目
用户有更多的匿名浏览仪表板。
为什么 SonarQube?
SonarQube 引用 IDC 的讲话需要一种测量和强制软件的方法
和代码质量指标。一个关键的目标是对代码质量进行量化测量, 并
分析这些指标来制定一套基准测量-主要是利用
鼓励良好做法的平台 (并劝阻坏的行为)。
在评估有竞争力的产品时, 他们寻找的是: 品质特征
分析提供 (如死代码分析、影响分析、跨平台分析);
支持的语言 (SonarSource 支持 20 +);代码评审的灵活性;和仪表板
产品和报告分析。服务组织还评估了基于
商业限制和参与限制。
SonarQube 的优点通常包括其整体易用性, 需要更少的时间来学习
并采取。与 SonarQube 的包装选项也有利于***终用户和
服务提供商-"不附加任何字符串" 的企业许可证是对具有动态分发需求和服务提供者的***终用户的帮助, 提供了能够利用的自由
SonarQube 灵活地作为订婚的一部分。
SonarQube 仍在发展其对影响分析的支持, 但同时一些客户
引用已创建解决此问题的变通方法。
使用 SonarQube 的好处
SonarQube 客户描述的功能在解决其
***问题包括以下几个方面:
?代码和质量的能见度, 可以看到热点是在应用程序中
主动包括应用程序质量 "前端" 作为开发的初始和迭代部分
过程仪表板, 用户可以选择处境和
自定义报告。
?的能力, 以不同的层次整合的指标, 在各不相同的意见-在客户
级别, 在开发人员级别和/或业务单位级别-并将它们上卷成 "一个
真理之源 ";一个单一的门户/单点, 每个人都可以去看看他们
需要知道。
?经理/董事可以自定义和使用 SonarQube 来衡量
各个组-服务提供商可以为每个客户自定义仪表板
组织, 他们正在努力解决不同种类的需求和标准。
它们还可以增强现有规则并集成结果, 因为 SonarQube 给出了
这一水平的灵活性。同时, 组织必须注意不要使用
SonarQube 作为 "棍棒" 迫使 "好行为"-成功的公司有
利用信息鼓励更好的做法, 而不是建立 "墙
羞辱 "惩罚个人不良的编码行为。这意味着使用 SonarQube 作为
"诊断指标" 而不是 "基于结果的" 指标, 可以更好的推动成功。
?总的来说, 这些能力使客户能够管理和减轻技术债务
通过一个 cost-effective 的解决方案, 可以扩展到企业级, 并广泛
分布式.SonarQube 帮助组织对代码质量进行基准测试并了解
他们的组织是如何做, 以及他们如何能够和有改进的时间通过
定性和定量的信息。
SonarQube和JaCoCo的个人测试代码覆盖率
构建部分
这里不需要修改但是,您应该注意Maven Surefire的任何自定义配置,以确保它也适用于我们要创建的配置文件。在春季宠物诊suo的情况下,这是我们正在写的参考POM的相关部分:
<建立> <插件>
...
<插件>
<的groupId> org.apache.maven.plugins </的groupId>
<artifactId的>行家-万无一失-插件</ artifactId的>
<版本> 2.13 </版本>
<结构>
<argLine> -XX:-UseSplitVerifier </ argLine>
<包含>
<包括> ** / * Test.java </包括>
<包括> ** / * Tests.java </包括>
</包括>
<排除>
<排除> ** /它/ * IT.java </排除>
</排除>
</配置>
</插件>
</插件> </建造>
这种配置告诉Surefire:1)排除执行单元测试的集成测试(Surefire的双插件,Failsafe涵盖了集成测试);和2)禁用字节码验证器,防止类被调试时的运行时错误(即添加mocks或TopLink增强功能时)。
依赖部分
在本节中,不需要进行任何更改。sonarqube系统是一个代码质量检测工具,由苏州华克斯信息科技有限公司作为中国区总代理商。我们只想注意到,如果您的项目已经在利用JaCoCo收集整合测试覆盖率指标,并且明确地指出了本部分中的JaCoCo伪像,那么可以将其留下 - 至今没有确定任何冲突。无论如何,它不应该在这里需要,所以从这个部分删除它可能更安全。
档案部分
所有必需的更改都在本节中。服务提供者应该定位自己,并证明它们是客户IT和业务组织之间***的"质量门"。而且它们都非常干净,因为它们都只需要向POM添加一个新的配置文件。此配置文件将为Surefire配置一个特殊侦听器,以确保适当收集每个单独测试用例的覆盖度量。为了保证成功的测试执行,我们将在此保持与POM的构建部分中显示的相同配置。***,配置文件将为包含侦听器代码的伪zao添加新的依赖关系。结果是这样的:
<轮廓>
<! - 使用SonarQube和JaCoCo计算每个测试的覆盖率指标
<ID>覆盖每次测试</ ID>
<建立>
<! - 与常规测试执行目标相同的配置 - >
由JaCoCo prepare-agent - >配置的<! - 加argLine参数
<argLine> $ {argLine} -XX:-UseSplitVerifier </ argLine>
<! - 每个测试覆盖所需的新配置 - >
<性能>
<属性>
<名称>听者</名称>
<值> org.sonar.java.jacoco.JUnitListener </值>
</属性>
</建造>
<依赖性>
<的groupId> org.codehaus.sonar-plugins.java </的groupId>
<artifactId的>声纳-jacoco-听众</ artifactId的>
<版本> 2.3 </版本>
<范围>测试</范围>
</依赖性>
</依赖>
</简档>
版权所有©2024 天助网