publish前自动执行sonarqube
根据SonarQube官方描述,SonarQube由三个组件组成:
SonarQube Server,运行如下进程:
- 一个服务于SonarQube用户界面的web服务器
- 基于Elasticsearch的搜索服务器
- 负责处理代码分析报告并将其保存在SonarQube数据库中的计算引擎
Database Server,主要存储如下内容:
- 在代码扫描期间生成的代码质量和安全性的度量和问题
- SonarQube实例配置
Scanner:
- 扫描器,用以分析项目
SonarQube Web API没有提供分析代码的接口,因为分析代码是scanner的职责,因此,我们要在出包前自动执行sonarqube,思路就是先要执行sonarqube scanner,然后再通过接口获取执行报告。
def executed = false
project.publish.doFirst {if (!executed && "csf-parent" == project.name) {// 标记为已执行,避免重复执行executed = true// 执行sonarqubeexec {workingDir "${rootDir}"commandLine "gradle.bat", "sonarqube"}// 获取gradle.properties配置参数def properties = project.getProperties()def projectKey = properties.get("systemProp.sonar.projectKey")def hostUrl = properties.get("systemProp.sonar.host.url")def login = properties.get("systemProp.sonar.login") + ":"def token = login.getBytes(StandardCharsets.UTF_8).encodeBase64Url(true).toString()// 获取sonarqube执行结果def connection = new URL(hostUrl + "/api/qualitygates/project_status?projectKey=" + projectKey).openConnection()connection.setRequestMethod("GET")connection.setDoOutput(true)connection.setRequestProperty("Content-Type", "application/json")connection.setRequestProperty("Authorization", "Basic " + token)def code = connection.getResponseCode()if (code != 200) {throw new GradleException("获取sonarqube结果失败!")}def text = connection.getInputStream().getText()def slurper = new groovy.json.JsonSlurper()def json = slurper.parseText(text)def status = json.projectStatus.statusif ("ERROR".equalsIgnoreCase(status)) {throw new GradleException("sonarqube检测不通过!")}}}
publish前自动执行sonarqube相关推荐
- 区块链大咖谈之蔡维德:法律的自动执行将颠覆法学研究、法律制度和法律实践...
[编者Peter Ye按] 欢迎大家参加2018年12月12日下午的中国存储与数据峰会<区块链的技术与应用论坛>.我已经邀请到蔡维德.于佳宁.王立仁.洪蜀宁.易欢欢.孙海波.董天一等大咖进 ...
- python运维脚本部署jdk_Jenkins自动执行Python脚本,并输出测试报告
这段时间,在家时间自由(除了睡觉8小时,其他时间都在工作和学习),有大把的时间实操练习一些硬技能: 今天,更新一篇利用Jenkins这套框架,调用Python自动化脚本,并输出测试报告的手把手实操文章 ...
- 开关机自动执行脚本方法[以及切换用户执行命令方法]
[开关机自动执行脚本方法] 摸索了两天,终于找找们到了: 首先要明确的一点是:unix(含linux)的OS有若干个运行级别: 参见1:http://xiaoli.itpub.net/post/398 ...
- Navicat使用教程:使用Navicat Premium 12自动执行数据库复制(四)
下载Navicat Premium最新版本 Navicat Premium是一个可连接多种数据库的管理工具,它可以让你以单一程序同时连接到MySQL.Oracle及PostgreSQL数据库,让管理不 ...
- 如何在构建docker镜像时执行SonarQube扫描.NET Core应用
前言 SonarQube是一款静态代码质量分析工具,它常用于检测代码中的Bug.漏洞和代码异味,并且能够集成在IDE.Jenkins.Git等服务中,方便随时查看代码质量分析报告. 一般情况下,我们在 ...
- windows制作定时关机脚本_自动关机、自动打开程序… 让Windows自动执行任何操作...
文章转载于网络,侵删 Windows 中有一个非常棒的功能,叫做"任务计划程序",但是因为它的界面看起来有点复杂,导致很少有人使用它. 其实对于任何人而言,"任务计划程序 ...
- node.js require 自动执行脚本 并生成html,nodejs 执行脚本并实时输出
接到需求 需要一个服务来执行shell脚本,要求可以实时打印shell脚本执行的过程,并看到脚本执行的结果. 明确任务目标: 这是一个web服务,需要执行shell脚本 当一个脚本执行的时候,再次发送 ...
- linux php自动执行_linux下实现定时执行php脚本
在linux中输入命令 复制代码 代码如下: crontab -e 然后使用vim的命令编辑打开的文件,输入 复制代码 代码如下: 0 * * * * /usr/bin/php -f /home/us ...
- jenkins 手动执行_想知道如何用Jenkins自动执行Python脚本输出测试报告?
前言在用python做自动化测试时,我们写好代码,然后需要执行才能得到测试报告,这时我们可以通过 Jenkins 来进一步完成自动化工作.借助Jenkins,我们可以结合 Git/SVN 自动拉取代码 ...
最新文章
- QIIME 2用户文档. 14机器学习预测样品元数据分类和回归q2-sample-classifier(2018.11)
- TensorFlow迁移学习的识别花试验
- LINQ 学习路程 -- 查询语法 LINQ Query Syntax
- 180°舵机的使用步骤
- 计算机组成原理——总线系统总结
- EAST算法超详细源码解析:数据预处理与标签生成
- 微信公众平台服务框架
- ben we_惊!WE辅助选手Ben离开WE,大舅子还能再有这么默契的辅助吗?
- php下载地址转换工具,php把url转换迅雷thunder资源下载地址的简单示例
- 深度学习笔记_卷积神经网络参数计算
- 使用Redis计数器防止并发请求
- 基于vue2.0与追书神器api的小说阅读webapp
- 学习笔记1/5,操作系统之操作系统概念
- echarts中国地图
- 远程主机强迫关闭了一个现有的连接.
- java求三角形周长 面积_计算三角形的周长和面积 java
- windows的域和域林间的信任是如何工作的
- fiftyone安装使用亲测
- 【Vue3】图标处理方案SvgIcon
- p值>0.05,统计意义上不显著?
热门文章
- ArcGIS license server administrator无法启动问题
- 关闭搜狗浏览器的托盘图标
- 感谢飞书放过幕布!GPT-4平替Poe;100个GPT-4实战案例;AI绘画新手指南之SD篇;new Bing靠谱教程;AI生成视频摘要神器 | ShowMeAI日报
- echarts地图罗平县的json_Echarts 加载省地图json
- Learning Alteryx-PDF下载
- SHARC音频DSP的算法详解(一)数字信号里的定点数和浮点数
- 物联网卡设置_为什么手机上使用物联网卡的要设置APN
- x86_64与ARM64的signaling NaN与Quiet NaN,以及浮点数的舍入模式
- 手撕代码HAttMatting(3):dataset
- css 霓虹灯转动效果,CSS3 文本霓虹灯闪烁特效