SonarSource
提高应用价值, 降低软件开发风险
成功的组织在过程中向前移动质量分析并使其迭代
作为整个软件开发生命周期的一部分。开发和测试世界和业务
方法以及正在向敏捷模型演进-持续的价值生成/连续
改进/连续检验是提高质量的重要战略。这些都是
IDC 为 end-user 客户和服务提供商所观察到的关键策略:
?传统的代码质量方法通常在测试成为检查表项时失败
在开发过程结束时, QA 团队运行一个工具并返回
开发团队在软件进入之前需要采取的行动列表
生产.这可能导致延迟和预算超支。所以会发生什么
经常是管理标志移动项目, 没有质量门
发展.
?在项目开始时从项目代码分析中收集适当的度量标准
是至关重要的。如果没有正确的度量标准 (或任何度量标准), 代码库可能会在没有人注意的情况下恶化, 或者在技术债wu达到一定的时候才会注意到
在时间和预算限制的情况下, 成本太高而无法解决的级别。收集
代码度量连续可以提供可见性, 并使团队的优势
控制代码库的技术债wu。
?理解要修复的代码也是的。通常, 团队开始重构
因为他们认为代码库在性能、脆性、不稳定性方面是不好的,代理商sonarqube 安装,
难于维护和扩展。但如果没有正确的语境分析, 它是
无法检测到代码库的哪个部分负责所遇到的问题。
因此, 更改可能会应用到错误的代码, 或者正确的代码被重构
错误的方式, 或只有部分问题得到解决。这是一个度量和工具的领域
可以通过标识导致问题的代码部分来帮助。
确保持续的软件质量是成功的关键
end-user 公司和服务组织都必须运行软件开发作为
业务.这样做的一部分是管理软件的远程可维护性, 即
发展今天你需要保持明天。积极主动的架构, 也
所创建内容的质量是管理软件长期支出的关键
维护;保存错误的、结构较差的软件是更昂贵的。
在这方面, 应用程序维护团队还需要对软件进行可视化, 以便能够更好地
维护代码以降低成本, 实现更好的质量, 并提高客户响应能力
和 ROI。在将任何代码发送到客户之前, 为代码建立一致的进程
分析可以帮助确保必须运行软件的公司的长期改进
有效地发展。
SONARSOURCE 和 SONARQUBE 平台
SonarSource: 介绍
SonarSource 是一家瑞士公司, 成立于2008年。该公司诞生的愿望
处理和解决与软件质量相关的不断增长的问题, 并为市场带来解决方案
可以跟踪的软件开发过程中的代码质量。在竞争激烈的市场中
来自少数提供商的服务, SonarSource 的投资组合是由它的根在开放的区别
来源, 其可访问性,中国sonarqube 安装, 和一系列的参与选项从包装和定价
角度.
SonarQube 平台被创造了并且采取了到市场 (初作为 "声纳"), 与 SonarSource
在2009年10月发布该平台的第yi个商业插件。到 2010年3月,
SonarSource 开始看到社区和企业都接受了 SonarQube 平台,
到那时, 一个月被超过2000次。在 2010年5月, SonarSource
发布的 COBOL 和 Visual Basic plug-ins, 随后几个月后由一个 SQALE 插件,
c# 插件 (2011年6月) 和 PL/SQL 插件 (2011年9月)。
该公司的主要意图是带来负担得起的和直观的质量解决方案和分析
开发人员还提供了广泛、分布式使用的功能。今天, SonarSource 有
约有350客户, 包括德意志银行、美国银行、米其林、
西班牙、法国巴黎银行、泰雷兹和 EADs。SonarQube 平台使用约300
客户, 与3万和4万安装。该公司已看到的
在过去几年的增长, 它现在雇用了超过30员工, 从20人
就在12月前












SonarQube中的旧版代码
虽然我不相信将数字放在源代码质量上,SonarQube(以前称为Sonar)在开发过程中可能是一个非常有用的工具。它对您的团队执行一致的风格,已经发现了几个可能的错误,并且是一个很好的工具:您可以浏览违规行为,看看为什么某个表达式或代码块可能是一个问题。
为了确保您的代码库保持一致状态,您还可以直接执行代码检入的任何违规行为。其中一个问题是很多项目不是绿色项目你有很多现有的代码。如果您的违规号码已经很高,很难判断是否引入了新的违规行为。
在这篇文章中,我将向您展示如何从现有代码的零违反行为开始,而不用触摸来源,Jens Schauder在他的伟大演讲中使用Legacy Teams的灵感来启发它。我们将根据文件中的行忽略所有违规行为,因此如果有人触及该违规行为将再次显示的文件,开发人员将负责修复旧版违规行为。
关闭违规插件
我们正在使用SonarQube的关闭违规插件。可以为问题配置不同的排除模式。您可以为代码块定义正则表达式,这些代码块应该被忽略,或者在所有文件或行基础上停用违规。
对于现有代码,您想忽略某些文件和行的所有违规。这可以通过在文本区域中插入这样的方式来完成排除模式:
de.fhopf.a的kka.actor.IndexingActor; PMD:SignatureDeclareThrowsException; [23]
这将排除在IndexingActor类的第23行中抛出原始异常的违规。再次分析代码时,这种违规将被忽略。
通过API检索违规
除了漂亮的仪表板之外,SonarQube还提供了一个可用于检索项目违规的API。如果您不希望查找代码库中的所有现有违规行为,并手动插入,您可以使用它自动生成排除模式。所有这些违规都可以在/ api /违规找到,北京sonarqube 安装,例如HTTP://本地主机:9000 / API /违例。
我确定还有其他方法可以做,但是我使用jsawk来解析JSON响应(在Ubuntu上,你必须安装Spidermonkey而不是默认的js解释器。你必须自己编译,而且我必须使用一个特定的版本。叹了口气)。




SonarSource交付管道,
持续的交付和 DevOps 是众所周知的和广泛传播的做法现在。人们普遍认为, 重要的是组建伟大的团队,中国sonarqube 安装, 首先定义共同的目标, 然后选择和整合适合于给定任务的工具。通常, 它是一个轻量级工具的混搭, 它们集成在一起建立连续的交付管道并支持 DevOps 的计划。在这个博客文章中, 我们放大到了整个管道的一个重要部分, 这就是经常被称为连续检查的学科, 它包括检查代码并在上面注入一个质量门, 并显示在达到质量门后如何上传工件。DevOps 的启用工具包括詹金斯、SonarQube 和 Artifactory。
的用例你已经知道质量不能在事后被注入, 而是从一开始就应该是过程和产品的一部分。作为一种常用的良好做法, 强烈建议您尽快检查代码并使结果可见。因为 SonarQube 是一个很好的选择。但 SonarQube 不只是运行在任何孤立的岛屿, 它是集成在一个输送管道。作为管道的一部分, 代码被检查, 并且仅当代码根据定义的要求是好的, 换句话说: 它满足质量门, 被建立的工件被上传到二进制存储库管理器。
让我们考虑下面的场景。其中一个繁忙的开发人员必须修复代码, 并检查对中央版本控制系统的更改。白天很长, 晚上很短, 而且对所有团队的承诺, 开发人员没有检查本地沙箱中代码的质量。幸运的是, 有构建引擎詹金斯作为一个单一的真理点, 实现交付管道与其本地管道功能, 并作为一个方便的巧合 SonarQube 有支持詹金斯管道。
此更改将触发管线的新运行。哦不!生成管线中断, 并且未进一步处理更改。在下面的图像中, 您会看到已定义的质量门被忽略。可视化是由詹金斯蓝色海洋完成的。
01 PipelineFailedBlueOcean
SonarQube 检验潜在的问题是什么?我们可以打开 SonarQube 的 web 应用程序并深入查找。在 Java 代码中, 显然没有将字符串文本放在右侧。
02发现
在团队会议中, 决定将其定义为一个阻止程序, 并相应地配置 SonarQube。此外, 建立了一个 SonarQube 质量门, 以打破任何建设, 如果一个拦截qi被确定。现在让我们快速查看代码。是的, SonarQube 是对的, 下面的代码段有问题。
03 FindingVisualizedInCode
我们不希望详细讨论所有使用的工具, 也涵盖完整的詹金斯构建工作将超出范围。但有趣的提取这里的检查方面是在詹金斯管道 DSL 中定义的以下阶段:
配置. xml: SonarQube 检查阶段 ("SonarQube 分析") {withSonarQubeEnv ("声纳") {mvn 组织 sonarsource 扫描仪. maven: 声纳-maven-插件: 3.3. 0.603: 声纳 +"-f 所有/pom" xml +"-Dsonar projectKey = com. huettermann: 全部: 主" +"-Dsonar" 登录 = $ SONAR_UN +"-Dsonar" 密码 = $ SONAR_PW +"-Dsonar" 语言 = java +"-Dsonar。" 的+"-Dsonar。" 的+-Dsonar 测试. 夹杂物 = ** 测试 *** +"-Dsonar. 排除/**/** 测试 ***"}}用于运行 SonarQube 分析的阶段。允许选择要与之交互的 SonarQube 服务器。运行和配置扫描仪, 许多可用的选项, 请检查文档。许多选项可用于集成和配置 SonarQube。请参阅文档中的替代方案。同样适用于其他覆盖的工具。SonarQube 质量门作为詹金斯管线阶段的一部分, SonarQube 配置为运行和检查代码。但这仅仅是第yi部分, 因为我们现在还想添加质量门, 以打破构建。下一阶段正好涵盖了这一点, 请参阅下一片段。管道被暂停, 直到质量门被计算, 特别是 waitForQualityGate 步骤将暂停管道, 直到 SonarQube 分析完成并返回质量门状态。如果遗漏了质量门, 则生成将中断。




北京sonarqube 安装-华克斯由苏州华克斯信息科技有限公司提供。苏州华克斯信息科技有限公司坚持“以人为本”的企业理念,拥有一支高素质的员工队伍,力求提供更好的产品和服务回馈社会,并欢迎广大新老客户光临惠顾,真诚合作、共创美好未来。华克斯——您可信赖的朋友,公司地址:苏州工业园区新平街388号,联系人:华克斯。