商盟旺铺
华南中国sonarqube开源代码质量管理软件服务周到「华克
来源:2592作者:2022/9/5 19:07:00






SonarSource简介

商务友好的许可、开放的代码库和活跃的社区只是 SonarSource 生态系统的一些优势。意义和承诺

简短的***是一个字: LGPL!这是我们从项目开始时选择的许可证, 而不是普通的 GPL 许可证。SonarQube生态系统是由SonarQube平台和一套plug-ins在公共基础设施上担任东道主。为什么?因为我们相信, 使 SonarQube 和 SonarLint 伟大的产品与高采用, 我们需要一个许可证, 既符合社区和商业的需要。有了这个选择, 并在平台上保持其领导地位, SonarSource 因此承诺将继续对其产品进行投资。意义和承诺开芯原理原则,开放式***

较长的***是指由这四原则支持的开放***的想法:您提供给用户的开源产品一定很棒。传统的代码质量控制方法涉及so-called的准时审核或质量门,这是对源代码的定期审核。您提供的开源产品应该经过一个不敬虔的测试和 QA 的数量。您提供的开源产品应该是架构, 使所有的商业功能都 plug-ins 到开放的***。您销售的开源产品应该有完全开放的定价。用户社会

像任何好的开源项目一样, SonarQube 和 SonarLint 在他们周围有活跃的社区。SonarSource关键挑战代码质量管理按设计,按规定的时间间隔,不间断地进行准时审核。这些社区在候选发布者的测试阶段提供了广泛的反馈。它们还提供了有效的 bug 报告和社区支持, 但用户也可以选择直接从 SonarSource 购买额外的支持和产品。用户社区供应商锁定减少供应商锁定

虽然 SonarSource 是其产品的主要贡献者, 但用户可以访问源代码, 因此, 如果出现问题, 他们就能继续开发产品。


治理产品为 gear-up SonarQube 提供了从团队级部署到企业广泛部署 SonarSource 解决方案的功能。它是组织和管理大型项目组合的基石, 其质量模型基于4关键指标: 性、可维护性、可靠性和安全性。

组织大量的应用程序

治理产品提供了组织和构建大型应用程序组合的能力。这是通过定义树来完成的, 其中节点是项目组和项目的叶子。例如, 可以按应用程序、按团队的应用程序、按部门分组等对项目进行分类。

治理

树的数量没有限制, 树木的深度也没有限制。

评估总体健康状况

治理产品为应用程序组合提供了几个健康因素, 包括可维护性, 又称技术债务, 它代表了应用程序或应用程序组的未来维护成本, 以及性, 它代表了应用程序或应用程序组准备装运到生产的情况。

突出风险领域

治理产品作为散热器, 在应用程序组合中突出显示风险区域。这包括操作风险, 即不同于运行时的预期行为以及安全漏洞风险的应用程序, 即可用于其他目的的应用程序, 而不是它们的设计用途。

治理PDF 文件导出 PDF 报表

治理产品增加了将执行仪表板作为 pdf 导出的能力, 以便能够在 web 应用程序之外共享一个投资组合。还可以安排将 PDF 报告定期发送到预定义的收件人列表, 从而在任何级别的投资组合中进行。查看示例项目转移转移项目历史记录

在大型组织中, 为不同部门、业务线运行多个 SonarQube 的实例非常常见, 但也有历史原因。一个财富100强的公司与超过2万的开发商使用它管理超过6亿行代码,在每天分析超过5000应用程序的环境中。如果是这种情况, 则需要能够在保留项目历史记录的同时将项目从实例转移到另一项。治理产品提供了这种功能。通过扩展, 此功能允许合并 SonarQube 的两个实例。

债务模型控制调整分析模型

每个代码分析器都包含每个规则的预定义补救成本。这些费用在发现问题时适用, 允许计算技术债务补救费用。尽管这些补救费用已在几百万行代码上进行了调整, 并且可以按目前的情况使用, 但可能需要对它们进行调整, 以反映环境中的某些具体情况。


关闭SonarQube中的旧版代码违规

一旦您设置了所有组件,您现在可以使用jsawk为所有现有的违规创建排除模式:

curl -XGET'http:// localhost:9000 / api / violation?在类级别之外,人们普遍承认,圈复杂度的分数应用程序与它们的代码总计行相关联。depth = -1'| ./jsawk -a'return this.join(“\ n”)''return this.resource.key.split(“:”)[1] +“; *; [”+ this.line +“]”' |排序| uniq的

这将显示一个可以粘贴在“关闭违规”插件的文本区域中或将其作为文件签入存储库的列表。启用连续代码质量管理:使用SonarQube,代码分析变得更加容易,开发人员可以获得宝贵的洞察力,以确保这一点得到广泛采用。随着下一个分析过程,您将希望看到零违规。当有人通过插入一行更改文件时,会再次显示违规行为,并且应该被修改。不幸的是,一些违规行为不是基于行的,并会产生一个行号'undefined'。目前我刚刚删除了这些手动,所以你仍然可能会看到一些违规。

结论

我提出了一种方法来将您的旧版代码重置为零违例。使用SonarQube 4.0,“切换违规关闭”插件的功能将在内核中使用,因此将更容易使用。我仍然在寻找保持排除模式***xin的***jia方式。一旦有人必须修复现有文件的违规行为,则应删除该模式。

更新09.01.2014

从SonarQube 4开始,这种方法不再工作了。 SwitchOffViolati***插件的一些功能已被移动到***,但是排除违反行为是不可能的,也不会实现。开发商建议仅查看项目的趋势,而不是总体违规数量。这可以很好地使用差分。



SonarSource

通过上述命令成功分析项目将导致以下输出到控制台或日志文件:


SonarQube Runner 2.3

Java 1.7.0_25 Oracle Corporation(64位)

Mac OS X 10.8.5 x86_64

INFO:Runner配置文件:/opt/sonar-runner-2.3/conf/sonar-runner.properties

信息:项目配置文件:/Users/manisarkar/bn_projects/TimelineJS/sonar-project.properties

INFO:默认语言环境:“en_US”,源代码编码:“UTF-8”

信息:工作目录:/Users/manisarkar/bn_projects/TimelineJS/.sonar

信息:SonarQube服务器3.7

14:11:20.927 INFO - 加载批量设置

14:11:38.290 INFO - ANALYSIS SUCCESSFUL,你可以浏览http:// localhost:9000 / dashboard / index / TimelineJS

14:11:38.292 INFO - 执行工作后类org.sonar.issuesreport.ReportJob

14:11:38.293 INFO - 执行岗位职责类org.sonar.plugins.core.issue.notification.SendIssueNotificati***Po的sdtJob

14:11:38.314 INFO - 执行工作后类org.sonar.plugins.core.batch.IndexProjectPo的stJob

14:11:38.356 INFO - 执行工作后类org.sonar.plugins.dbcleaner.ProjectPurgePo的stJob

14:11:38.365 INFO - - >在2013-08-19和2013-09-15之间每天保留一张快照

14:11:38.365 INFO - - >在2012-09-17和2013-08-19之间每周保留一个快照

14:11:38.365 INFO - - >在2008-09-22和2012-09-17之间每月保留一个快照

14:11:38.365 INFO - - >删除之前的数据:2008-09-22

14:11:38.368 INFO - - > Clean TimelineJS [id = 151]

14:11:38.372信息 - 信息:----------------------------------------- -------------------------------

信息:执行成功

信息:------------------------------------------------ ------------------------

总时间:19.099s

***终内存:14M / 502M

以下是几个链接,以示例sonar-project.properties文件来帮助创建新的,即非Maven Java项目的Sonar设置[05]和SonarQube Runner [06]分析。

注意:SonarQube Runner希望SonarQube在指ding端口上运行,否则会抛出错误,例如ERROR:Sonar server http:// localhost:9000无法访问。SonarQube的优点通常包括其整体易用性,需要更少的时间来学习并采取。这当然可以通过配置文件进行更改(参见上一篇文章[01])。

SonarQube组件

一旦构建完成并成功,可以在仪表板中找到新的或更新的项目。钻入项目将带来一个屏幕,载入重要指标和分析项目的各个方面:

(以上是示例应用程序的屏幕截图)

令人感兴趣的主要重要组成部分是质量指标,复杂因素,复杂性(左下),测试覆盖率指标(单位测试覆盖率和单位测试成功率)。每一个指标都可以博弈,所以你需要让人们在船上的概念,真正充分利用它。可能安全违规。 Package Tangle Index and Dependencies to cut,绝dui是方便的,以保持清洁的包和松散耦合的依赖关系。同样的说法,LCOM4(方法中缺少凝聚力 - 降***值越好),复杂性也揭示了你的类,方法和功能的松散耦合 - 它也是在文件级别和整体级别给出全图。所有这些组件都是软件质量的良好指标,至少如果不是软件工艺 - 底层代码写在质量上有多好?或者它可以被看作是 - 仍然是充足的改进和重构的房间。

热点视图现在进一步分析了分析的其他一些重要方面,并突出显示需要更多关注的领域或者一个更多的问题在其顶点附近 - 要么超越***da允许限制,要么需要更多的抛光才能满足要求。

(以上是在nemo.sonarqube.org网站上发布的JDK7的截图)

我非常喜欢下面的设计组件,它可以很好地分解包装依赖关系并强调依赖循环。它是中大型项目中更复杂的事情之一,通常可能会阻碍模块化。



华克斯 (业务联系人)

13862561363

商户名称:苏州华克斯信息科技有限公司

版权所有©2025 天助网