关于SonarQube社区版使用问题有哪些

发布时间:2021-10-20 14:12:09 作者:iii
来源:亿速云 阅读:123

本篇内容主要讲解“关于SonarQube社区版使用问题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“关于SonarQube社区版使用问题有哪些”吧!

 1 简介

在大规模使用SonarQube平台对代码进行扫描时可能会遇到以下几个问题

2 解决SonarQube平台数据问题

当我们在大规模使用SonarQube进行代码质量检查的时候,我们需要让开发人员每次都能看到当前特性分支的扫描分析数据,以尽快解决有问题的代码,提高代码的质量。开源版本会带来一些问题,因为不支持一个项目多分支的形式,所以我们按照特性分支的名称来生成相对应的扫描项目。(会产生很多Sonarqube项目)

例如: 服务名称是 demo-abcd-service

之前我们的做法是不区分分支,在扫描所有分支的时候都会指定同一个sonar项目。这就是导致SonarQube平台此项目数据不稳定的根本原因。

现在的做法是: 假如这个项目有F1,F2等特性分支,在每次对其中特性分支构建扫描时会配置sonar扫描参数(projectName)为  “当前的服务名称_特性分支名称”,这样相当于每个特性分支都对应一个扫描项目,数据就不会出现问题了。

虽然解决了数据不稳定的问题,但又间接的带来了一些问题。

总结一下如何解决问题呢?

总之,最简单的方式就是付费购买开发版、企业版。小型团队也可以使用生成多项目的方式管理。

3 解决SonarQube扫描规则问题

在搭建好SonarQube平台后,已经配置好了针对每种语言的"Sonar  Way"质量配置。我们在大规模使用中,对扫描Java项目的规则做了一些定制,有一些新增的规则还有一部分弃用的规则,总之大部分还都是默认自带的java规则,配置好规则后并设置为默认的规则。其中有几十个团队在用默认的规则,后来个别团队因需求要使用新的JAVA项目质量。如何为新建的项目自动配置好对应的质量呢?

分析

应对

实施主要通过RESTAPI完成

JenkinsFile(ShareLibrary)参考如下:

package com.devops  //Http req  使用Jenkins插件封装的方法 哈哈哈 def HttpReq(reqType,reqUrl,reqBody){     result = httpRequest authentication: '我的凭据的ID',                 httpMode: reqType,                  contentType: "APPLICATION_JSON",                 consoleLogResponseBody: true,                 ignoreSslErrors: true,                  requestBody: reqBody,                 //responseHandle: 'NONE',                  url: reqUrl                 //quiet: true          return result }  //查找项目 def SearchProject(projectName){     apiUrl = "http://我的sonar服务器地址/api/projects/search?projects=${projectName}"     resultInfo = HttpReq("GET",apiUrl,'')      def result = readJSON text: """${resultInfo.content}"""          if (result["paging"]["total"] == 0 ){         return "false"     } else {         return result     } }  //创建项目 def CreateProject(projectName){     apiUrl = "http://我的sonar服务器地址/api/projects/create?name=${projectName}&project=${projectName}"     resultInfo = HttpReq("POST",apiUrl,'') }  //更新语言规则集 def UpdateQuality(language,qualityProfile,projectName){     apiUrl = "http://我的sonar服务器地址/api/qualityprofiles/add_project?language=${language}&qualityProfile=${qualityProfile}&project=${projectName}"     resultInfo = HttpReq("POST",apiUrl,'') }   //项目授权 def ApplyTemplate(projectKey,templateName){     apiUrl = "http://我的sonar服务器地址/api/permissions/apply_template?projectKey=${projectName}&templateName=${templateName}"     resultInfo = HttpReq("POST",apiUrl,'') }

4 SonarQube项目授权问题

我们在前面解决了SonarQube扫描前的一些问题,现在开始解决授权问题。

Sonarqube的授权配置

亲测: 新生成的项目还需要再应用权限模板后才能使对应的项目组成员访问。

解决:在项目扫描后,调用接口对当前项目应用对应的权限模板。

到此,相信大家对“关于SonarQube社区版使用问题有哪些”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. pycharm 社区版安装
  2. PyCharm社区版够用吗?有什么功能

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

sonarqube

上一篇:梳理数百个问题后,我总结出10个数据科学面试必掌握概念……

下一篇:Python技巧有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》