如何使用 sonarqube 改进工作流
twitter作为开发人员, 我不得不多次修复生产环境中的问题。有时, 我在代码之前没有看到任何错误, 而在其他时间, 我花了很多时间试图理解别人写的代码-更糟的是, 我把代码放到生产中, 在几个月后发现了安全漏洞。
很可能你也面对过这种情况。因此, 有一个工具, 可以帮助您在早期阶段检测到它们, 岂不是很棒吗?sonarqube 使这成为可能。在这篇文章中, 您将了解它如何帮助您清理代码并防止将来出现问题。
sonarqube 入门sonarqube 是一个开放源码的管理平台, 致力于不断分析和测量技术,sonarqube开源代码管理软件, 从早的计划阶段到生产。通过将静态和动态分析工具结合在一起, sonarqube 连续监视七轴上的代码, 如重复代码、编码标准、单元测试、复杂代码、潜在 bug、注释和设计以及体系结构。
sonarqube 是一种用于主要编程语言的代码分析器, 如 c/c++、javasc ript、java、c#、php 或 python, 等等。通常, 应用程序同时使用多种编程语言, 例如: java、javasc ript 和 html 的组合。sonarqube 自动检测这些语言并调用相应的分析器。
sonarqube 现在是 bitnami 目录的一部分。您可以或推出它与我们准备使用的云图像只需几次---和开始使用它在您的所有项目。利用 bitnami 图像的特点: 安全、xin、优化、一致等。
玩 sonarqube在这个 github 的项目中, 您将找到一个用 javasc ript 编写的代码示例。目标: 向您展示如何将 sonarqube 合并到您的开发工作流中。存储库包含两个主文件夹 (源和测试), 这样, 您就可以知道测试所涵盖的代码的百分比。
这个项目还包括一个声纳工程. 属性文件, 其中有一些配置参数需要配置 sonarqube, 如用户名, 密码, 语言等。
运行
$ 声纳-扫描仪在项目文件夹内, 这样就启动了第yi个扫描仪, 您可以在 web 界面中检查结果。
第yi次扫描
正如您在上面的截图中所看到的, 当前的代码有零 bug、零漏洞和六代码的气味。
我将修改源代码以引入一个 bug 和一个漏洞。这一次是有意的, 但是在日常的工作中, 这样的问题会在你没有意识到的情况下出现。
添加错误
再次运行扫描仪使用
$ 声纳-扫描仪如预期的那样, 将出现新的 bug 和漏洞。再次检查分析以查看所做的更改:
比较扫描
屏幕右侧将出现一个新节 (以黄色高亮显示)。sonarqube 处理两种状态: 当前状态 (以白色表示) 和xin更改。正如您在截图中所看到的, 上次扫描中引入的更改增加了一个 bug 和一个漏洞。sonarqube 评估每个部分的, 评分基于不同的参数, 一个是jia状态。在这种情况下, 引入 bug 导致 bug 部分从 a 传递到 c, 漏洞 部分从 a 到 b。
您可以设置 泄漏期间 来确定要进行比较的方式: 按时间或在每个扫描仪执行之间。
让我们详细地看看 覆盖率 一节: 38.1% 是测试覆盖率 (正如您在 github 存储库中看到的那样, 我对某些文件进行了测试, 但对于所有的文档都没有)。在黄色部分, 您可以看到新添加的行的覆盖率。以前, 为了添加错误, 我引入了一些新行, 但我没有为这些新行创建任何测试, 因此新的测试覆盖率为0%。此外, ---覆盖范围, 我可以看到更多的信息的覆盖面, 例如: 覆盖的文件, 覆盖线的数量, 等等。
错误信息
通过这种快速而简单的分析 (您只需执行一个命令), 您将能够防止出现在生产环境中的错误, 使代码保持安全并遵守jia做法和标准。在下面的迭代中, 我将致力于实现零 bug、漏洞和代码气味的目标。我还可以在测试中得到100% 的代码。一旦我的代码处于这种状态, 就很容易看出所做的更改是否引入了某种错误或坏的做法。
如何挤压 sonarqube正如您在上一节中看到的, 保持代码的---状态非常简单。但是, 还有更多的发现。sonarqube 有很多很酷的集成。
分析方法可以在下列分析方法之间进行选择:
用于 msbuild 的 sonarqube 扫描仪:. net 项目的启动分析sonarqube 扫描器: maven 的启动分析和xiao配置sonarqube 扫描器 gradle: 发射 gradle 分析蚂蚁 sonarqube 扫描器: 蚂蚁发射分析詹金斯 sonarqube 扫描仪: 詹金斯发射分析sonarqube 扫描仪: 当其他分析器都不合适时, 从命令行启动分析插件另外, sonarqube 有一个更新中心与各种各样的插件组织入不同的类别, 一些有用的插件是:
代码分析器
sonarcfamily c/c++sonarphpsonarjssonarwebsonarjavacss集成
github 插件: 分析拉请求, 并---问题作为---。谷歌分析: 将 google 分析------添加到 sonarqube 的 web 应用程序中。单片机引擎
善变的: 增加对善变的支持。git: 添加对 git 的支持。svn: 添加对 subversion 的支持。身份验证和授权
github 身份验证: 通过 github 启用用户身份验证和单一登录。gitlab 身份验证: 通过 gitlab 启用用户身份验证和单一登录。谷歌: 启用用户身份验证授权到谷歌。读过这篇文章后, 你可能想尝试 sonarqube, 看看它是如何融入你的日常工作的。您可以直接从 bitnami 目录或启动它。
快乐 (和安全) 编码!











sonarsource关键挑战代码管理
按设计, 按规定的时间间隔, 不间断地进行准时审核。这种代码的方法管理有四主要类型的缺点, 这将在本节详述。
太少, 太迟准时审计确定了两种改进: 化妆品和结构变化。而外观更改需要稍加修改, 结构更改可能包括主要软件设计.虽然可能需要进行此类更改, 但由准时审核产生的行动计划在过程中定义得太晚,sonarqube修改检测规则, 无法做任何事情, 但会打乱开发周期;无论是软件发布日期需要扩展, 以包括软件重新设计, 或更糟糕的软件将被推送到不达标的生产, 因此降低了可维护性和适应性, 当新的业务需求出现。
来自开发团队的推回组织内部的过程显然缺乏所有权。审计员不能自己的过程, 因为他们既不拥有代码也不控制问题解决。同样,模型的命令和控制特性阻止开发团队拥有过程, 因为它没有参与---。因此, 您有两个断开的组这些都是的责任, 而不是他们的责任。开发人员倾向于从准时审核中产生的行动计划, 因为他们:√是在团队之外生成的, 在日常工作中被视为一种新的约束√是主观的;调查结果依赖于---的判断, 而非客观措施√小的背景和历史信息, 因此被视为无关√因正在进行的更改而失效, 并很快变得过时√不要让和其他利益相关者参与审核和审核过程√介入的过程太晚;在审核功能时, 开发人员需要 重新学习用于解决查找的代码
缺少过程所有权
组织内部的过程显然缺乏所有权。审计员不能自己的过程, 因为他们既不拥有代码也不控制问题解决。同样,模型的命令和控制特性阻止开发团队拥有过程, 因为它没有参与---。因此, 您有两个断开的组这些都是的责任, 而不是他们的责任。
异构需求衡量软件绝dui价值的传统方法, 如问题总数在门中发现, 强制评估人员对不同的应用程序进行测量要求取决于其来源。例如, ---项目可能不会保持在相同的高度一个绿地项目的标准, 和 in-house 的发展可能被判断不同于外包代码。这是由于您仍然需要允许软件运送到生产, 并要求每个项目达到相同的绝dui价值的阈值之前释放通常是不切实际的。使用这些绝dui值, 几乎不可能解决共同的对所有应用程序的要求, 因此很难在整个委yuan会中采用---的做法。
sonarqube和jacoco的个人测试代码覆盖率
围绕jacoco听众人工制品的一个---。虽然在文档中不清楚,广东sonarqube,但是当jacoco---版本与sonarqube中安装的java插件的版本匹配时,似乎获得了jia效果。在这种情况下,由于我们在sonarqube中安装的java插件是2.3版,我们使用了listener artefact 2.3版本。我们还用监---1.2测试了同样好的结果,但为了防止任何未来的冲突,我们建议保持版本一致。
运行分析
一旦完成了项目配置的更改,您只需要重新执行sonarqube分析即可查看新的报告。
根据您安装的sonarqube java版本,配置有所不同。
在旧版本中运行分析
当使用的java插件版本是2.1或更早的版本时,应该在分析执行时才能启用该配置文件,并且只有当分析执行时。这意味着现在需要发射声纳:声纳目标作为单独的maven构建(建议这样做,sonarqube,但在许多情况下,您可以在一次运行中执行所有目标)。在我们的宠物诊suo版本的情况下:
>; mvn清洁验证-p货 - tomcat,硒测试,jmeter测试
>; mvn sonar:声纳-p覆盖率测试
如果您的构建是由jenkins工作触发的,那么新的配置文件应该添加到后期制作操作中,如此屏幕截图中所示:
华克斯信息-广东sonarqube由苏州华克斯信息科技有限公司提供。苏州华克斯信息科技有限公司坚持“以人为本”的企业理念,拥有一支高素质的员工队伍,力求提供---的产品和服务回馈社会,并欢迎广大新老客户光临惠顾,真诚合作、共创美好未来。华克斯——您可---的朋友,公司地址:苏州工业园区新平街388号,联系人:华克斯。
联系我们时请一定说明是在100招商网上看到的此信息,谢谢!
本文链接:https://tztz192713a1.zhaoshang100.com/zhaoshang/274067932.html
关键词: