代理商sonarqube 插件-华克斯信息

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]} ')' &amp; &amp; 密码 '

# 命令测试剧本

TEST_COMMAND = 'cd/行动 &amp; &amp; 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 工具进行比较。

这两个步骤都需要后续的手动升级, 我认为这些升级准备活动。









SonarSource

通过上述命令成功分析项目将导致以下输出到控制台或日志文件:


SonarQube Runner 2.3

Java 1.7.0_25 Oracle Corporation(64位)

Mac OS X 10.8.5 x86_64

INFO:Runner配置文件:/opt/sonar-runner-2.3/conf/sonar-perties

信息:项目配置文件:/Users/manisarkar/bn_projects/TimelineJS/sonar-perties

INFO:默认语言环境:“en_US”,源代码编码:“UTF-8”

信息:工作目录:/Users/manisarkar/bn_projects/TimelineJS/.sonar

信息:SonarQube服务器3.7

14:11:20.927 INFO - 加载批量设置

14:11:38.290 INFO - ANALYSIS SUCCESSFUL,你可以浏览http:// localhost:9000 / dashboard / index / TimelineJS

14:11:38.292 INFO - 执行工作后类portJob

14:11:38.293 INFO - 执行岗位职责类re.ndIssueNotificatiPo的sdtJob

14:11:38.314 INFO - 执行工作后类re.dexProjectPo的stJob

14:11:38.356 INFO - 执行工作后类ugins.jectPurgePo的stJob

14:11:38.365 INFO - - &gt;在2013-08-19和2013-09-15之间每天保留一张快照

14:11:38.365 INFO - - &gt;在2012-09-17和2013-08-19之间每周保留一个快照

14:11:38.365 INFO - - &gt;在2008-09-22和2012-09-17之间每月保留一个快照

14:11:38.365 INFO - - &gt;删除之前的数据:2008-09-22

14:11:38.368 INFO - - &gt; Clean TimelineJS [id = 151]

14:11:38.372信息 - 信息:----------------------------------------- -------------------------------

信息:执行成功

信息:------------------------------------------------ ------------------------

总时间:19.099s

终内存:14M / 502M

信息:------------------------------------------------ ------------------------

以下是几个链接,以示例sonar-perties文件来帮助创建新的,即非Maven Java项目的Sonar设置[05]和SonarQube Runner [06]分析。

注意:SonarQube Runner希望SonarQube在指ding端口上运行,否则会抛出错误,例如ERROR:Sonar server http:// localhost:9000无法访问。这当然可以通过配置文件进行更改(参见上一篇文章[01])。

SonarQube组件

一旦构建完成并成功,可以在仪表板中找到新的或更新的项目。钻入项目将带来一个屏幕,代理商sonarqube教程,载入重要指标和分析项目的各个方面:

(以上是示例应用程序的屏幕截图)

令人感兴趣的主要重要组成部分是质量指标,复杂因素,复杂性(左下),测试覆盖率指标(单位测试覆盖率和单位测试成功率)。可能安全违规。 Package Tangle Index and Dependencies to cut,绝dui是方便的,以保持清洁的包和松散耦合的依赖关系。同样的说法,LCOM4(方法中缺少凝聚力 - 降值越好),代理商sonarqube,复杂性也揭示了你的类,方法和功能的松散耦合 - 它也是在文件级别和整体级别给出全图。所有这些组件都是软件质量的良好指标,至少如果不是软件工艺 - 底层代码写在质量上有多好?或者它可以被看作是 - 仍然是充足的改进和重构的房间。

热点视图现在进一步分析了分析的其他一些重要方面,并突出显示需要更多关注的领域或者一个更多的问题在其顶点附近 - 要么超越da允许限制,要么需要更多的抛光才能满足要求。

(以上是在网站上发布的JDK7的截图)

我非常喜欢下面的设计组件,它可以很好地分解包装依赖关系并强调依赖循环。它是中大型项目中更复杂的事情之一,通常可能会阻碍模块化。



使用SonarQube - Blockers进行PL / SQL分析

发表评论

PLSQL_BlockersCritical在上一篇文章中,我们已经看到如何创建我们自己的PL / SQL质量配置文件,代理商sonarqube 插件,uo SonarQube默认配置文件中的所有132个现有规则。现在,我们可以重新启动前面发起的分析。

这样,我将能够处理PL / SQL配置文件中存在的所有规则,并选择我想要使用的规则,代理商sonarqube安装配置,以便为我的演示环境创建PL / SQL仪表板。继续阅读→

此条目发布于2014年1月5日由Jean-Pierre FAYOLLE发行的SonarQube - PL / SQL。

使用SonarQube进行PL / SQL分析 - PL / SQL质量配置文件

发表评论

SonarQubePLSQL3在从Jenkins配置我们的第yi个PL / SQL分析后,我们启动了它,现在我们可以在SonarQube仪表板中查看结果。

这将是一个机会,在我们的下一篇文章中讨论和解释SonarQube提出的PL / SQLjia实践。但首先,我们来看看SonarQube PL / SQL质量配置文件中的规则。继续阅读→

Jean-Pierre FAYOLLE于2013年12月29日发布了SonarQube - PL / SQL。



代理商sonarqube 插件-华克斯信息由苏州华克斯信息科技有限公司提供。行路致远,砥砺前行。苏州华克斯信息科技有限公司致力成为与您共赢、共生、共同前行的战略伙伴,更矢志成为行业软件具有竞争力的企业,与您一起飞跃,共同成功!

苏州华克斯信息科技有限公司
姓名: 华克斯 先生
手机: 13862561363
业务 QQ: 3521016152
公司地址: 苏州工业园区新平街388号
电话: 0512-62382981
传真: 0512-62382981