SonarSource简介
具有 Artifactory 和 Sonarqube 集成的连续交付准备 Gradle 项目当玩弄持续集成/交付/部署的概念时, 我在 Gradle 构建以及如何将它们集成到这些概念中而苦苦挣扎。Gradle 在构建工具环境中越来越重要, 因此我创建了一个关于如何使用它的模板或原型。我选择了一个场景, 我看到了 Maven 和其他工具已经实现了:
推动风投转向中央风投将更改标记为特定 id 并将其推回中央 VCS使用单元测试执行生成执行声纳分析执行 artifactory 上载此链使您能够不断地将每个更改设置标记、单元测试、分析并上载到您的工件存储库, 以备部署。简而言之,代理商sonarqube开源代码质量管理软件, 这是 (从我的角度来看) 持续交货的精神。
环境:
Gradle 3.5 (通过项目的 Gradle 包装)Artifactory: 5.2. 1-OSS, 运行在 http://localhost:8081/artifactorySonarqube: 6.3.1, 跑在 http://localhost:9000注意: 在这种情况下, Sonarqube 和 Artifactory 将由管理员用户使用。在实际生产环境中, 必须将其更改为更安全的方式
首先, 我在 Artifactory 中添加了一个本地 (m2-compatible) 和两个远程存储库:
"库-释放-本地" 是为了保存我自己的工件 (这就是为什么它被称为 "本地")"插件-gradle-org" 指向远程回购 "https://plugins.gradle.org/m2/" (这是 gradle 插件所必需的)"repo1-maven-org" 指向远程回购 "http://repo1.maven.org/maven2/" (这是项目的所有其他依赖项所必需的)此外, 我创建了一个虚拟的回购 "释放" 包含所有 3 mentionend 回购。这使得从一个位置获取所有发布的库更容易。
该项目本身并不真正重要的这篇文章。我认为这是一个标准的 java 项目, 遵循 Maven/Gradle 的惯例。更有趣的部分是 Gradle 文件:
gradle/包装/gradle 包装。生成. gradle凭据. 属性gradle. 属性设置. gradle











Ansible SonarQube 升级的角色
你可能知道,中国sonarqube开源代码质量管理软件, 并希望使用 SonarQube。这是一个伟大的工具, 是积极的发展和改善。这是伟大的, 如果你是一个开发使用 SonarQube。但是, 如果您碰巧管理 SonarQube 实例, 则由于升级指南由11步骤组成, 因此不断升级非常麻烦。
停止旧的 SonarQube 服务器
并解压新的 SonarQube 分布在一个新鲜的目录, 让我们说 NEW_SONARQUBE_HOME
使用默认的 H2 数据库启动它, 并使用更新中心安装您需要的插件
手动安装任何自定义插件
停止新服务器
更新声纳的内容. 属性和包装. 配置文件位于 NEW_SONARQUBE_HOME/配置目录中, 其内容与 OLD_SONARQUBE_HOME/配置目录中的相关文件 (web 服务器 URL、数据库设置等) 有关。不-粘贴旧文件
如果使用了自定义 JDBC 驱动程序, 请将其到 NEW_SONARQUBE_HOME/扩展/jdbc 驱动程序/
备份数据库
删除数据/es 目录
启动新的 web 服务器
http://localhost:9000/setup (用您自己的 URL 替换 "localhost:9000") 来浏览并按照安装说明进行操作
这是一个太多的步骤,代理商sonarqube开源代码质量管理软件, 手动执行。因此, 我决定通过为它编写一个 Ansible 的角色来实现自动化。
初始设置
在我开始编写 Ansible 剧本之前, 我需要找到一种方法来测试我的代码。所以我开始与流浪汉旋转了一个虚拟机,安徽sonarqube开源代码质量管理软件, 并提供了一个简单的脚本。这是需要有类似的环境, 以我们的实际 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 工具进行比较。
这两个步骤都需要后续的手动升级, 我认为这些升级准备活动。




SonarSource简介
我们为整个开发组织增添了价值。无论您在开发组织中的角色是什么, SonarSource 解决方案都增加了价值, 因为我们有 cutting-edge 的功能, 您需要在您的软件组合中da限度地提高质量和管理风险。为开发
软件开发人员终负责代码质量。代码质量是所谓的非功能性需求的一部分, 因此是开发人员的直接责任。因为代码质量不是应该推迟到以后进行的, 所以我们的解决方案在开发过程的每一步都提供了反馈, 从 IDE 到发布, 包括任何中间升级。这使开发人员能够对代码质量做出早期和经过教育的决策, 使他们能够更好地完成工作并提供更好的软件。开发devops为devops
DevOps 团队需要确保软件建立在正确的道路上。DevOps 队有很多责任。其中包括支持开发过程、自动化测试、确保质量、提高生产率以及终启用连续部署。良好的代码质量是实现所有这些目标的必要条件, 虽然不是充分的条件。我们的解决方案提供了一个代码质量的收费门, 可以添加在任何建设/测试/部署步骤。这使 devOps 团队能够自动执行一组质量标准, 从而确保组织提供更好的软件。为高管
SonarSource 解决方案降低了风险并提高了团队生产率。管理人员需要能够安全地操作软件, 并以成本为投资回报辩解。我们的解决方案向执行官们一目了然地展示了他们面临的操作风险以及缓解的成本。它还有现成的功能, 可以系统地改进可维护性, 从而提高开发团队的长期生产率。这使管理人员能够确保其组织提供更好的软件, 并以jia成本使用风险控制方法。









中国sonarqube开源代码质量管理软件-华克斯由苏州华克斯信息科技有限公司提供。中国sonarqube开源代码质量管理软件-华克斯是苏州华克斯信息科技有限公司今年新升级推出的,以上图片仅供参考,请您拨打本页面或图片上的联系电话,索取联系人:华克斯。