centos7搭建sonarqube环境+jenkins部署全流程
一、简介
sonarqube是一个用于代码质量管理的开源平台,用于管理源代码的质量
不遵循代码标准
sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。
潜在的缺陷
sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。
糟糕的复杂度分布
文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。
重复
显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示 源码中重复严重的地方。
注释不足或者过多
没有注释将使代码可读性变差,特别是当不可避免地出现人员变动 时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。
缺乏单元测试
sonar可以很方便地统计并展示单元测试覆盖率。
糟糕的设计
通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测藕合。
二、sonarqube环境搭建
1.下载jdk安装包,因为sonarqube环境是依赖JVM运行的,所以需要安装jdk
下载jdk11并做环境配置
vim /etc/profile
最后一行添加:
export PATH=/usr/local/java/bin/:$PATH
2.下载sonarqube安装包:
官网:https://www.sonarqube.org/
下载相应的版本,我这里使用SonarQube 8.2社区版本
3.使用wincp工具将sonarqube安装包传输到centos7中
4.安装解压和压缩工具
yum install -y unzip zip
解压sonarqube-8.2.0.32929.zip到/opt下改名为sonarqube
unzip sonarqube-8.2.0.32929.zip
mv sonarqube-8.2.0.32929 /opt/sonarqube
5.sonar-pdf-plugin插件打包
sonar-pdf-plugin插件源码 https://gitee.com/GeoStarMobile/sonar-pdf-plugin
下载sonar-pdf-plugin的源码(需要做部分修改),IDEA打包生成jar包,然后拷贝到 /opt/sonarqube/extensions/plugins目录下。
6.配置sonarqube环境变量
vim /etc/profile
export SONAR_HOME=/opt/sonarqube
export PATH=$PATH:$SNOAR_HOME/bin/linux-x86-64
source /etc/profile
7.赋予执行权限,解决后续权限不足的问题
chmod 777 sonarqube
8.创建普通用户权限(root用户不能启动es)
adduser sonaruser
passwd sonaruser
9.给普通用户赋sonar执行权限,以及Java执行权限
chown -R sonaruser:sonaruser /opt/sonarqube
chown -R sonaruser:sonaruser /usr/local/java
10.切换普通用户
su sonaruser
11.启动服务
/opt/sonarqube/bin/linux-x86-64/sonar.sh start
tail -f /opt/sonarqube/logs/sonar.log
12.浏览器再次输入http://192.168.4.239:9000(默认 admin/admin)
sonar服务启动会启动sonar服务,elasticsearch服务、MySQL服务
ps -ef | grep elasticsearch
ps -ef | grep soanr
ps -ef | grep mysqld
可通过以上命令查看服务进程
13.安装中文插件
三、jenkins集成sonarqube
1.安装插件SonarQube Scanner
2.sonar生成令牌,jenkins的凭据需要用到
3.jenkins系统配置中添加SonarQube servers的配置信息
4.全局配置工具中安装SonarQube Scanner
5.新建sonarqube项目test
6.jenkins新建自由构建项目
7.更改jenkins配置文件中.m2目录下 settings.xml和代码文件中pom.xml
settings.xml加入如下内容
pom.xml加入如下内容:
8.去jenkins部署项目,部署完毕查看sonarqube检测情况
centos7搭建sonarqube环境+jenkins部署全流程的更多相关文章
- CentOS7——搭建LNMP环境(WordPress案例)
CentOS7--搭建LNMP环境(WordPress案例) LNMP组成介绍 LNMP(Linux-Nginx-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统 ...
- 阿里云EDAS在本地CentOS7.5 系统搭建测试环境,部署配置中心以及部署多个war包
参考阿里云的EDAS开发文档: 使用 Ali-Tomcat 开发应用 我们自己在内网搭建CentOS7 的测试环境,需要的资源如下: Ali-Tomcat Pandora 容器 EDAS 配置中心安装 ...
- centos7搭建ANT+jmeter+jenkins接口测试自动化环境
一.环境准备 因为用到了jmeter和apache-tomcat,centos7必须要有java环境,所以配置jdk和apache-tomcat什么的,就不多说了,自行操作 帮你们偷懒: ant下载地 ...
- Centos7 搭建lnmp环境 (centos7+nginx+MySQL5.7.9+PHP7)
阿里云一台服务器出现问题! 我估计是一键安装包环境的原因,所以打算重新搭建下环境! 首先,当然是先做好快照!安全第一! 对系统盘做更换系统操作,装上纯净版的centos. 装好后,进入系统 一.挂载数 ...
- centos7 搭建 docker 环境
1. 安装centos7 http://isoredirect.centos.org/centos/7/isos/x86_64/ 下载 everything 版本,最小化版本可能缺失很多东西 我是在 ...
- linux,centOS,用LNMP搭建wordpress,更新固定连接--全流程
下午到晚上的时间,买了个linux服务器,用的centOS系统,遇到各种问题! 1.用putty,ssh到vps后,根据网上命令,一步步下载并安装,具体步骤可以看一下网上教程,LNMP.org站上的教 ...
- Win2k8&&vCenter部署全流程
几个不同的组件 vCenter Server:对ESXi主机进行集中管理的服务器端软件,安装在windows server 2008R2或以上的操作系统里,通过SQL 2008R2 或以上版本的数据库 ...
- linux部署全流程(未完)
一.环境搭建 1.jdk 2.tomcat 3.nginx 4.redis 推荐工具:winSCP(用来传输文件).SecureCRT(用来执行命令) 1.jdk 下载地址:https://www.o ...
- CentOS7搭建LNMP环境
以前写的过时了,重新发一篇新的. 安装PHP 下载官网:https://www.php.net/downloads.php 为了方便,我存了现成的 百度网盘:https://pan.baidu.com ...
随机推荐
- 关于kettle前后无依赖项关系的解决办法
前几日我发了一个关于从cube里提取数据的kettle流程图,当时我测试了是正确的.今天我将N个这样的流程放到一个job里批量处理的时候,错误出现了,纠结了很久.我始终无法理解为什么单独执行是正确的, ...
- metasploit魔鬼训练营靶机环境搭建(第二章)
环境搭建,书上已经很详细了,路由转发的那个鼓捣了好久都没弄好,菜的啊 所以先往书后面继续学习,不停留在配置环境上了. backtrack没有下载,使用的kali linux 其他的都是一样的 百度网盘 ...
- john破解kali密码
实验环境:kali 实验工具:john 所用命令: 1.查看/etc目录下的shadow文档,此文档记录了所有用户的用户名及密码hash值 2.使用命令echo 用户名:密码 > shadow, ...
- 一个小时学会用 Go 编写命令行工具
前言 最近因为项目需要写了一段时间的 Go ,相对于 Java 来说语法简单同时又有着一些 Python 之类的语法糖,让人大呼"真香". 但现阶段相对来说还是 Python 写的 ...
- linux服务器性能分析只需1分钟
背景: 现在的互联网公司,大多数时候应用服务都是部署在linux服务器上,那么当你的服务运行过程中出现了一些响应慢,资源瓶颈等疑似性能问题时,给你60秒,如何快速完成初步检测? 肯定有人会说用工具,公 ...
- 廖雪峰官网学习js 字符串
操作字符串: length() 长度 totoLowerCase() 小写 toUpperCase() 大写 trim() 移除空白 charAt( ...
- Angular:使用前端proxy代理解决跨域问题
①在项目文件的根目录下新建文件proxy.config.json { "/": { "target": "http://127.0.0.1:3000& ...
- 20201213-1 HTML基本标签(一)
> HTML 基本结构 <> </> 标签对 > 一个 HTML 文档由 4 个基本部分组成: 文档声明:<!DOCTYPE HTML>声明这是一个 ...
- MySQL02-约束
1.DQL查询语句 1.1 排序查询 语法:order by 排序字段1 排序方式1 , 排序字段2 排序方式2... 排序方式: ASC:升序,默认的. DESC:降序. 注意: 如果有多个排序条 ...
- 解决Linux所有命令不能使用的问题
解决Linux所有命令不能使用的问题 出现这个问题说明你的 /etc/profile 配置出现了问题,一般是因为path配置出现了问题.排除添加内容中的错误,然后重启一个新窗口执行执行 source ...