SonarSource简介
商务友好的许可、开放的代码库和活跃的社区只是 SonarSource 生态系统的一些优势。意义和承诺
简短的答案是一个字: LGPL!这是我们从项目开始时选择的许可证, 而不是普通的 GPL 许可证。为什么?因为我们相信, 使 SonarQube 和 SonarLint 伟大的产品与高采用, 我们需要一个许可证, 既符合社区和商业的需要。有了这个选择, 并在平台上保持其领导地位, SonarSource 因此承诺将继续对其产品进行投资。意义和承诺开芯原理原则,开放式核心
较长的答案是指由这四原则支持的开放核心的想法:您提供给用户的开源产品一定很棒。您提供的开源产品应该经过一个不敬虔的测试和 QA 的数量。您提供的开源产品应该是架构, 使所有的商业功能都 plug-ins 到开放的核心。您销售的开源产品应该有完全开放的定价。用户社会
像任何好的开源项目一样, SonarQube 和 SonarLint 在他们周围有活跃的社区。这些社区在候选发布者的测试阶段提供了广泛的反馈。它们还提供了有效的 bug 报告和社区支持, 但用户也可以选择直接从 SonarSource 购买额外的支持和产品。用户社区供应商锁定减少供应商锁定
虽然 SonarSource 是其产品的主要贡献者, 但用户可以访问源代码, 因此, 如果出现问题, 他们就能继续开发产品。
SonarSource简介
构建更好的软件的独特方法。通过在整个软件开发生命周期中支持代码质量, 帮助您的开发团队从创新的概念中受益, 同时将时间和精力集中在新功能上。的水泄漏范例
我们建议的代码质量的方法是什么?把它当作漏水的东西, 在你拖地板之前把漏水的东西修好!为什么?否则你只是在浪费你的时间和精力。对于代码质量, 同样的逻辑适用;在任何其他情况下, 您都应该在控制下获得新更改和添加代码的质量。一旦该漏洞得到控制, 代码质量将开始系统地改善。阅读更多漏水范例领yang授权收养和赋予
代码质量应该是每个开发人员的关注点, 而不仅仅是少数专家。一旦您切换到一个漏水的方法, 即新的代码是唯yi的焦点的方法, 开发人员将变得非常感兴趣的主题, 因为 "代码质量" 意味着他们的代码质量。如果您添加的能力是在一个非常短的反馈循环, 你得到的控制反转: 开发人员不仅解决问题, 但在其组织的代码质量的所有权, 因为它应该是在任何地方的情况。统一质量门
除非您在发布时强制执行质量门, 否则您没有到位的代码质量实践。质量门是在进入生产前经过验证的标准列表, 以确保应用程序符合质量要求。换言之, 这是内部质量的去/不去。采用漏水方法, 您可以为每个应用程序强制使用相同的质量闸门, 因为焦点将从应用程序中的遗留代码转移到新的或更新的内容。这使得代码质量成为开发过程的一个组成部分。促进代码管理应用程序组合 (APM)应用程序投资组合管理
泄漏范例创造了一个良性循环来提高代码质量, 但不处理风险。管理者应该能够对其投资组合中的现有风险做出决策。例如, 敏感的应用程序可能需要额外的精力来解决安全问题。这就是为什么, 他们需要有一个代表他们的应用程序组合装饰与相关的健康/风险因素。
SonarSource交付管道,
持续的交付和 DevOps 是众所周知的和广泛传播的做法现在。人们普遍认为, 重要的是组建伟大的团队, 首先定义共同的目标, 然后选择和整合最适合于给定任务的工具。通常, 它是一个轻量级工具的混搭, 它们集成在一起建立连续的交付管道并支持 DevOps 的计划。在这个博客文章中, 我们放大到了整个管道的一个重要部分, 这就是经常被称为连续检查的学科, 它包括检查代码并在上面注入一个质量门, 并显示在达到质量门后如何上传工件。DevOps 的启用工具包括詹金斯、SonarQube 和 Artifactory。
的用例你已经知道质量不能在事后被注入, 而是从一开始就应该是过程和产品的一部分。作为一种常用的良好做法, 强烈建议您尽快检查代码并使结果可见。因为 SonarQube 是一个很好的选择。但 SonarQube 不只是运行在任何孤立的岛屿, 它是集成在一个输送管道。作为管道的一部分, 代码被检查,SonarSource/SonarQube价格, 并且仅当代码根据定义的要求是好的, 换句话说: 它满足质量门, 被建立的工件被上传到二进制存储库管理器。
让我们考虑下面的场景。其中一个繁忙的开发人员必须修复代码, 并检查对中央版本控制系统的更改。白天很长, 晚上很短, 而且对所有团队的承诺, 开发人员没有检查本地沙箱中代码的质量。幸运的是, 有构建引擎詹金斯作为一个单一的真理点, 实现交付管道与其本地管道功能, 并作为一个方便的巧合 SonarQube 有支持詹金斯管道。
此更改将触发管线的新运行。哦不!生成管线中断, 并且未进一步处理更改。在下面的图像中, 您会看到已定义的质量门被忽略。可视化是由詹金斯蓝色海洋完成的。
01 PipelineFailedBlueOcean
SonarQube 检验潜在的问题是什么?我们可以打开 SonarQube 的 web 应用程序并深入查找。在 Java 代码中, 显然没有将字符串文本放在右侧。
02发现
在团队会议中, 决定将其定义为一个阻止程序, 并相应地配置 SonarQube。此外, 建立了一个 SonarQube 质量门, 以打破任何建设, 如果一个拦截qi被确定。现在让我们快速查看代码。是的, SonarQube 是对的, 下面的代码段有问题。
03 FindingVisualizedInCode
我们不希望详细讨论所有使用的工具, 也涵盖完整的詹金斯构建工作将超出范围。但有趣的提取这里的检查方面是在詹金斯管道 DSL 中定义的以下阶段:
配置. xml: SonarQube 检查阶段 ("SonarQube 分析") {withSonar ("声纳") {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部分, 因为我们现在还想添加质量门, 以打破构建。下一阶段正好涵盖了这一点, 请参阅下一片段。管道被暂停, 直到质量门被计算, 特别是 waitFor 步骤将暂停管道, 直到 SonarQube 分析完成并返回质量门状态。如果遗漏了质量门, 则生成将中断。
华克斯-SonarSource/SonarQube分销商由苏州华克斯信息科技有限公司提供。苏州华克斯信息科技有限公司(www.sinocax.com)坚持“以人为本”的企业理念,拥有一支的员工队伍,力求提供更好的产品和服务回馈社会,并欢迎广大新老客户光临惠顾,真诚合作、共创美好未来。华克斯——您可信赖的朋友,公司地址:苏州工业园区新平街388号,联系人:华克斯。