SonarSourceCode Analyzers
SonarABAP
SonarSource 为 ABAP 项目提供静态代码分析器。基于我们自己的技术, SonarABAP 分析代码并找到代码气味、bug 和安全漏洞。阅读更多c/c++ 的 SonarCFamily
SonarSource 提供的可能是hao的静态代码分析仪, 你可以找到在市场上的 c/c++。基于我们自己的 c/c++ 编译器 front-end, 它使用xianjin的技术来分析代码并找到代码气味、bug 和安全漏洞。阅读更多SonarCFamily 目标 C
SonarSource 提供的可能是hao的静态代码分析仪, 你可以找到在市场上的目标-C。基于我们自己的目标 C 编译器 front-end, 它使用xianjin的技术来分析代码并找到代码气味、bug 和安全漏洞。阅读更多SonarCOBOL
SonarSource 提供的可能是hao的静态代码分析仪, 你可以找到市场上的 COBOL。基于我们自己的 COBOL 解析技术, 它使用xianjin的技术来分析代码并找到代码气味、bug 和安全漏洞。阅读更多SonarC #
SonarSource 提供的可能是hao的静态代码分析仪, 你可以找到在市场上的 c#。基于微软 Roslyn 编译器 front-end, 它使用xian进的技术来分析代码和发现代码气味, bug 和安全漏洞。阅读更多SonarFlex
SonarSource 提供的可能是hao的静态代码分析仪, 你可以找到在市场上的 Flex。基于我们自己的 Flex 分析器, 它使用xianjin的技术来分析代码和发现代码气味, bug 和安全漏洞。阅读更多SonarJava
SonarSource 提供的可能是hao的静态代码分析仪, 你可以找到在市场上的 Java。基于我们自己的 Java 编译器 front-end, 它使用xian进的技术来分析代码并找到代码气味、bug 和安全漏洞。阅读更多SonarJS
SonarSource 提供的可能是hao的静态代码分析仪, 你可以找到在市场上的 Javascript。基于我们自己的 Javascript 编译器 front-end, 它使用xian进的技术来分析代码并找到代码气味、bug 和安全漏洞。阅读更多SonarPHP
SonarSource 提供的可能是hao的静态代码分析仪, 你可以找到在市场上的 PHP。基于我们自己的 PHP 编译器 front-end, 它使用xian进的技术来分析代码和发现代码气味, bug 和安全漏洞。阅读更多SonarPLI
SonarSource 为 PL/I 项目提供静态代码分析器。基于我们自己的技术, SonarPLI 分析代码并找到代码气味、bug 和安全漏洞。阅读更多SonarPLSQL
SonarSource 提供的可能是hao的静态代码分析仪, 你可以找到在市场上的 PL/SQL。基于我们自己的 PL/SQL 编译器 front-end, 它使用xian进的技术来分析代码并找到代码气味、bug 和安全漏洞。阅读更多SonarPython
SonarSource 提供的可能是hao的静态代码分析仪, 你可以找到在市场上的 Python。基于我们自己的 Python 分析器, 它可以找到代码气味、bug 和安全漏洞。阅读更多SonarRPG
SonarSource 为 RPG 项目提供静态代码分析器。基于我们自己的技术, SonarRPG 分析代码并找到代码气味、bug 和安全漏洞。阅读更多SonarSwift
SonarSource 提供的可能是hao的静态代码分析仪, 你可以找到在市场上的 Swift。基于我们自己的 Swift 编译器 front-end, 它使用xian进的技术来分析代码并找到代码气味、bug 和安全漏洞。阅读更多SonarVB6
SonarSource 提供的可能是hao的静态代码分析仪, 你可以找到市场上的 VB6。基于我们自己的 VB6 编译器 front-end, 它使用xian进的技术来分析代码并找到代码气味、bug 和安全漏洞。阅读更多SonarVB
SonarSource 提供的可能是hao的静态代码分析仪, 你可以找到市场上的 VB.NET。基于微软 Roslyn 编译器 front-end, 它使用xian进的技术来分析代码和发现代码气味, bug 和安全漏洞。阅读更多SonarWeb
SonarSource 提供了一个用于 HTML 和 JSF/JSP 的静态代码分析器。基于我们自己的技术, SonarWeb 分析代码并找到代码气味、bug 和安全漏洞。阅读更多SonarXML
SonarSource 为 XML 提供静态代码分析器。基于我们自己的技术, SonarXML 分析代码并找到代码的气味。至于我们在 SonarSource 开发的任何产品, 它都是建立在以下原则之上的: 深度、精que性和速度。
SonarSource简介
如何使这一切一起工作?从编码到升级您的构建, SonarSource 产品将支持整个软件开发生命周期, 以管理代码质量、降低风险并终提供更好的软件。当编码
在存在问题之前修复它们。不需要处理质量问题的hao方法是不首先将其注入。这是 SonarLint 的首要任务作为 ide 的扩展, 它可为开发人员提供新的 bug 和质量问题的即时反馈。编码推当推
将自动和手动代码复查结合在请求上, 以启用受教育的合并。拉请求是进行代码复查的jia场所, 因为它们是在功能完成但尚未合并到主分支中时创建的。请求分析器将运行自动代码分析, 并在请求中直接提供结果以及其他任何评论, 这些都是发生的, 允许负责合并的人做出有教养的决定。当促进
SonarQube 是代码升级到测试和生产环境的收费门。质量门是一个主要的, 现成的 SonarQube 功能。它提供了在每次分析时都能知道应用程序是否通过或失败发布条件的能力。换句话说, 它告诉您在每个分析应用程序是否准备好生产 "上"。因此, 在推广文的物之前, devOps 将被用作守门人。促进管理投资组合当管理
SonarQube 充当散热器, 可维护性、可靠性和安全性。组织的管理层必须能够评估与其应用程序相关的风险。这种能力来自于企业包中的治理产品, 以及将项目合并到一个结构化的应用程序组合中。
SonarSource 的产品和服务被世界各地的客户所使用。所有规模的组织都在使用来自 SonarSource 的产品和服务提高生产率, 降低风险, 终开发更好的软件。通过每天对 575万 SonarQube 的分析, 斯里巴加湾市 (业务解决方案构建者) 成功地提高了其整个软件产品套件的质量。斯里巴加湾市为金融人士和人寿保险公司提供商业解决方案和 IT 服务。它的核心软件框架在三不同的地点被开发者广泛使用: 比利时、卢森堡和爱尔兰。斯里巴加湾市的开发和质量团队一直在寻找you秀的软件质量工具, 以获得更深层次的洞察力, 更好地管理内部代码质量, 考虑到拥有一个强健的框架, 以此为基础进行产品开发的战略意义。如何提高软件质量和开发人员的工作效率?
直到 2009, 斯里巴加湾市依赖于不同的开源工具, 如 Cobertura、Checkstyle 和 Findbugs, 来识别和管理 in-house 软件框架中所有主要产品的质量问题。斯里巴加湾市面临着这些工具的重大挑战, 显著的是缺乏统一的界面来查看和跟踪质量问题。这些工具也缺乏衡量质量演变的能力随着时间的推移, 使评估斯里巴加湾市框架质量的改进变得困难。总的来说, 这种方法导致了零散的质量指标, 并没有给斯里巴加湾市的开发团队提供他们所需要的产品质量洞察力。由于斯里巴加湾市的框架被80多个不同地点的开发者广泛使用, 因此对于公司来说, 确保框架的实施符合jia做法和尽可能高的质量, 具有战略意义。研究和技术小组找到了一个客观的系统来确定构成高质量代码的因素, 以确保这些因素得到适当的跟踪, 并随着时间的推移来衡量这些因素的演变。解决方案: 统一度量、自定义仪表板和连续检查
在 2009年, 斯里巴加湾市的研究和技术小组决定尝试与 SonarQube 平台的概念证明, 以验证其功能, 并验证它将满足斯里巴加湾市的需要。在三月内, 很明显, SonarQube 很容易满足所有的要求, 并可以允许斯里巴加湾市客观地测量和验证代码质量。特别是, 该团队对 SonarQube 的连续检查功能印象深刻, 这使得他们能够在每两周的发布周期内和之后测量质量的变化, 从而加深对质量问题的理解。这使得开发人员和管理人员能够更轻松地相互合作, 了解并解决质量问题。斯里巴加湾市能够推动创新并维护其软件组合
除了简单地解决现有的质量问题, SonarQube 帮助开发者更好地在他们的工作, 根据斯特凡·德勒克 Nicoll, 框架开发的负责人。"SonarQube 平台是一种独yi无二的连续检测工具。诸如差异仪表板、时间线和历史表等功能使每一个团队成员都能提高其技能。有关规则违规、包缠、重复、代码覆盖率和 API 文档的报告帮助我们向其他开发人员提供了坚如磐石的库。简而言之, SonarQube 平台帮助我们编写了更好的代码。但更重要的是, 它也帮助我们作为一个团队互相学习, 提高我们的技能。今天, 斯里巴加湾市运行两个 SonarQube 实例, 分析了31多个项目和575万行代码。斯里巴加湾市的技术架构师和质量经理广泛使用 SonarQube 的历史和自定义仪表板来关注已被确定为重要的度量标准。迷你图用于验证进度, 警报阈值用于快速识别需要立即注意的事件。SonarQube 的插件库对斯里巴加湾市也具有极大的价值, 因为它使该公司能够轻松地将 SonarQube 平台与现有的 it 和应用程序生命周期管理 (ALM) 基础结构集成在一起。SonarQube LDAP 插件减轻认证和授权斯里巴加湾市的现有权限基础结构, 詹金斯插件集成 SonarQube 现有的连续集成基础结构, 和 SCM 活动插件, 帮助架构师和 QA 经理确定团队成员, 以联系有关代码质量问题。此外, SonarQube 的 extens
Ansible SonarQube 升级的角色
你可能知道, 并希望使用 SonarQube。这是一个伟大的工具, 是积极的发展和改善。这是伟大的, 如果你是一个开发使用 SonarQube。但是, 如果您碰巧管理 SonarQube 实例, 则由于升级指南由11步骤组成, 因此不断升级非常麻烦。
停止旧的 SonarQube 服务器
下载并解压新的 SonarQube 分布在一个新鲜的目录, 让我们说 NEW_SONARQUBE_HOME
使用默认的 H2 数据库启动它, 并使用更新中心安装您需要的插件
手动安装任何自定义插件
停止新服务器
更新声纳的内容. 属性和包装. 配置文件位于 NEW_SONARQUBE_HOME/配置目录中, 其内容与 OLD_SONARQUBE_HOME/配置目录中的相关文件 (web 服务器 URL、数据库设置等) 有关。不复制-粘贴旧文件
如果使用了自定义 JDBC 驱动程序, 请将其复制到 NEW_SONARQUBE_HOME/扩展/jdbc 驱动程序/<dialect>
备份数据库
删除数据/es 目录
启动新的 web 服务器
复制 http://localhost:9000/setup (用您自己的 URL 替换 "localhost:9000") 来浏览并按照安装说明进行操作
这是一个太多的步骤, 手动执行。因此, 我决定通过为它编写一个 Ansible 的角色来实现自动化。
初始设置
在我开始编写 Ansible 剧本之前, 我需要找到一种方法来测试我的代码。所以我开始与流浪汉旋转了一个虚拟机, 并提供了一个简单的脚本。这是需要有类似的环境, 以我们的实际 SonarQube 生产实例。我能够增量地构建我的 Ansible 剧本并在这个 VM 上测试它。很快我就明白了, 与流浪汉一起工作会减慢我的速度, 因为我需要重置环境, 而不是初的预期。所以我决定考虑泊坞窗。
用于测试的泊坞窗
我找到了正式的 SonarQube 泊坞窗图像, 但无法使用, 因为我们的 SonarQube 实例安装在 CentOS 和官fang图像使用不同的基础图像。另外, 我需要自定义特定的 SonarQube 版本我想开始。因此, 我创建了我们自己的 Dockerfile 与 CentOS 6 基地和 Ansible 安装。
此泊坞窗映像不需要启动 SonarQube, 因为我只是想验证是否进行了正确的文件更改, 而我的 Ansible 手册没有错误。升级的第yi步之一就是关闭服务器。
我将我的剧本装入容器, 并在该容器内运行 Ansible, 对该本地环境进行了更改。
当前脚本的路径
TESTS_DIR = $ (cd "$ (dirname" $ {BASH_SOURCE [0]} ")" & & 密码 "
# 命令测试剧本
TEST_COMMAND = "cd/行动 & & ansible-剧本 $ @
-我 ' 本地主机 '-c
升级-声纳 database.yml "
# 运行容器安装行动为卷
泊坞 run-v "$ TESTS_DIR/.。/行动/:/行动 "
"声纳-升级-测试"/"垃圾/bash-c" $ {TEST_COMMAND} "
在泊坞窗中运行我的剧本大大减少了反馈回路, 所以我决定泊坞窗是走的路。你可以看看我所有的脚本在 GitHub
Ansible 角色
我一步一步地往前走, 我到达了一个点, 一切似乎都在工作, 我有一个非常有用的 Ansible 的角色在我的手中。它尚未发布到 Ansible Galaxy, 但您可以在 GitHub 的 SonarQube 升级 Ansible 角色项目下找到源文件和文档。
当前 Ansible 角色通过在当前位置旁边创建新安装来升级 SonarQube。这提供了回滚的方法 (如果需要)。
此时, 角色执行以下任务:
确保特定的根用户存在于声纳安装
在所有安装所在的目录中创建声纳. sh
确保 SonarQube 服务存在
停止 SonarQube
下载新版本
备份数据库
下载和安装插件
将自定义配置应用于新实例
确保删除数据/es
重新 SonarQube 服务启动新版本
开始 SonarQube
手动步骤
这个过程仍然需要几个手动步骤。
在运行升级手册之前, 应手动确保在升级过程中要安装的插件列表是xin的。您可以从 SonarQube 的管理视图中获得xin支持的版本号。
根据 SonarQube 的建议, 此 Ansible 角色不仅复制以前安装的配置, 而且使用带有变量的模板来为新实例创建配置。这意味着在执行升级之前, 开发人员可以将模板和基本配置与新的 SonarQube 下载进行比较。虽然这是一个手动步骤, 但与以前的操作相比, 它更容易, 因为可以使用 IDE 而不仅仅是从命令行中的 diff 工具进行比较。
这两个步骤都需要后续的手动升级, 我认为这些升级准备活动。