关闭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的
这将显示一个可以粘贴在“关闭违规”插件的文本区域中或将其作为文件签入存储库的列表。随着下一个分析过程,您将希望看到零违规。当有人通过插入一行更改文件时,会再次显示违规行为,并且应该被修改。不幸的是,一些违规行为不是基于行的,并会产生一个行号'undefined'。目前我刚刚删除了这些手动,所以你仍然可能会看到一些违规。
结论
我提出了一种方法来将您的旧版代码重置为零违例。使用SonarQube 4.0,“切换违规关闭”插件的功能将在内核中使用,代理商sonarqube开源代码质量管理软件,因此将更*使用。我仍然在寻找保持排除模式xin的jia方式。一旦有人必须修复现有文件的违规行为,则应删除该模式。
更新09.01.2014
从SonarQube 4开始,这种方法不再工作了。 SwitchOffViolati插件的一些功能已被移动到,但是排除违反行为是不可能的,也不会实现。开发商建议仅查看项目的趋势,代理商sonarqube开源代码质量管理软件,而不是总体违规数量。这可以很好地使用差分。
SonarSource交付管道,
持续的交付和 DevOps 是众所周知的和广泛传播的做法现在。人们普遍认为, 重要的是组建伟大的团队, 首先定义共同的目标, 然后选择和整合适合于给定任务的工具。通常, 它是一个轻量级工具的混搭, 它们集成在一起建立连续的交付管道并支持 DevOps 的计划。在这个博客文章中, 我们放大到了整个管道的一个重要部分, 这就是经常被称为连续检查的学科, 它包括检查代码并在上面注入一个质量门, 并显示在达到质量门后如何上传工件。DevOps 的启用工具包括詹金斯、SonarQube 和 Artifactory。
的用例你已经知道质量不能在事后被注入, 而是从一开始就应该是过程和产品的一部分。作为一种常用的良好做法, 强烈建议您尽快检查代码并使结果可见。因为 SonarQube 是一个很好的选择。但 SonarQube 不只是运行在任何孤立的岛屿, 它是集成在一个输送管道。作为管道的一部分, 代码被检查, 并且仅当代码根据定义的要求是好的, 换句话说: 它满足质量门, 被建立的工件被上传到二进制存储库管理器。
让我们考虑下面的场景。其中一个繁忙的开发人员必须修复代码,代理商sonarqube开源代码质量管理软件, 并检查对*版本控制系统的更改。白天很长, 晚上很短, 而且对所有团队的承诺, 开发人员没有检查本地沙箱中代码的质量。幸运的是, 有构建引擎詹金斯作为一个单一的真理点, 实现交付管道与其本地管道功能, 并作为一个方便的巧合 SonarQube 有支持詹金斯管道。
此更改将触发管线的新运行。哦不!生成管线中断, 并且未进一步处理更改。在下面的图像中, 您会看到已定义的质量门被忽略。可视化是由詹金斯蓝色海洋完成的。
01 PipelineFailedBlueOcean
SonarQube 检验潜在的问题是什么?我们可以打开 SonarQube 的 web 应用程序并深入查找。在 Java 代码中, 显然没有将字符串文本放在右侧。
02发现
在团队会议中, 决定将其定义为一个阻止程序, 并相应地配置 SonarQube。此外, 建立了一个 SonarQube 质量门, 以打破任何建设, 如果一个拦截qi被确定。现在让我们快速查看代码。是的, SonarQube 是对的,西南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 分析完成并返回质量门状态。如果遗漏了质量门, 则生成将中断。
SonarSource简介
在它们存在之前修复代码质量问题!IDE SonarLint即时视图
打开文件时, 标记会自动出现在质量问题上。SonarLint **显示了打开文件上的标记的代码问题。它还为 IDE 中的选定组件提供问题汇总表, 包括问题的创建时间。即时视图关于飞检飞检测
在键入代码时出现问题。SonarLint 提供了在代码中查看问题的能力, 如文本的拼写检查器。这是通过巧妙地指出问题而不分散开发人员的注意力来完成的, 这样他就可以专注于代码, 但仍然会收到问题的通知。智能教育
错误描述与问题检测一起出现。一旦 SonarLint 检测到一个问题, 它还会显示相关的文档, 以帮助开发人员了解问题以及为什么它是一个问题。它提供了一个兼容的和不兼容的代码示例, 并演示如何解决示例问题。简单, 强大和有趣的使用: 一个很好的方式让学习。