一SonarQube介绍
SonarQube 是一个开源的代码分析平台,用来持续分析和评测代码的质量,支持检测 Java 、 JavaScript 、C#、C、C++ 等二十几种编程语言。通过 SonarQube 可以检测出项目中潜在的Bug、漏洞、代码规范、重复代码、缺乏单元测试的代码等问题,并提供了 UI 界面进行查看和管理。
架构
SonarQube 由4部分构成:
(1)SonarQube Server
SonarQube Server 会启动3个主要进程:Web Server:UI 管理界面、Search Server:基于 Elasticsearch 的搜索服务、Compute Engine Server:计算引擎服务,进行代码分析并保存到SonarQube Database。
(2)SonarQube Database
存储 SonarQube 实例的配置信息,项目、视图等的快照信息
(3)SonarQube Scanners
分析项目代码,可在构建/持续集成 服务器 上运行一个或多个
(4)SonarQube Plugins
SonarQube 插件管理

二搭建

2.1环境要求
主要是两个要求
(1)JDK 8
(2)MySQL (>=5.6 && <8.0) (也支持其他数据)
1安装java.jdk
服务器中存在openjdk   一般yum安装的jdk多为openjdk
rpm -qa | grep java
若有openjdk,会出现XXXX_openjdk_XXX的信息

rpm -e --nodeps `rpm -qa | grep java`
一次性删除成功

将jdk包上传到服务器
通过yum安装一款工具。
#yum install lrzsz -y

检查yum的安装包是否安装成功。
#rpm -qa |grep lrzsz

上图说明安装成功。
上传文件的执行命令:
#rz
就会打开本地选择文件对话框,选择文件,确定就可以上传到当前所在目录。
如果覆盖原文件,执行:
#rz -y

拷贝到当前目录下

解压缩 jdk-8u181-linux-x64.tar.gz 文件:
tar -zxvf jdk-8u181-linux-x64.tar.gz

返回到上一级并创建 /usr/local/jdk 目录:
cd ..
mkdir -p jdk

进入到 tools 目录后将 jdk-8u181-linux-x64 移动到 jdk 目录中:
[root@localhost tools]# mv jdk1.8.0_181 /usr/local/jdk/
[root@localhost tools]# cd /usr/local/jdk/

打开 /etc/ 目录下的 profile 文件:
vim /etc/profile
将如下代码追加到 profile 文件末尾:
JAVA_HOME=/usr/local/jdk/jdk1.8.0_181
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/dt.jar
export JAVA_HOME JRE_HOME PATH CLASSPATH

source /etc/profile
输入 java -version 查看 JDK 的版本:
[root@localhost jdk]# source /etc/profile
[root@localhost jdk]# java -version

系统环境准备
系统参数需要满足下述要求
sonarqube一定不能在root帐户下运行
vm.max_map_count 大于或等于 262144
fs.file-max 大于或等于 65536
运行SonarQube的用户至少可以打开 65536个 文件描述符
运行SonarQube的用户可以打开至少2048个线程
seccomp已被编译 进内核

根据需要执行下述命令以使内核参数符合sonar安装需求
#可以使用以下命令查看这些值:
sysctl vm.max_map_count
sysctl fs.file-max
ulimit -n

可以通过以root身份运行以下命令来为当前会话动态设置它们:
sysctl -w vm.max_map_count=262144
sysctl -w fs.file-max=65536
ulimit -n 65536

为了更永久设置这些值,则必须修改/etc/sysctl.d/99-sonarqube.conf(或/etc/sysctl.conf文件)#文件末尾添加下述两行
vi /etc/sysctl.conf

vm.max_map_count=262144
fs.file-max=65536

在/etc/profile文件末尾添加ulimit -n 65536
vi /etc/profile
ulimit -n 65536
#保存后运行#source /etc/profile 使其生效
source /etc/profile

2.2 开始安装

1、安装wget工具
[root@localhost ~]#yum -y install wget
wget 时提示 -bash:wget command not found,很明显没有安装wget软件包。一般linux最小化安装时,wget不会默认被安装。

下载
[root@localhost ~]#cd /opt
[root@localhost opt]#wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.7.7.zip
这里选择xshell rz将本地文件上传到服务器opt目录中

链接:https://pan.baidu.com/s/1GKjECv9QjGNZ8aAJYdlXNw 密码:ojfg

3、解压
[root@localhost opt]#unzip sonarqube-6.7.7
[root@localhost opt]#cd sonarqube-6.7.7

4、增加用户sonar
//创建sonar用户
//目录组和用户都是sonar
//sonarqube文件设置777
//编写配置文件
[root@localhost ~]# useradd sonar
[root@localhost ~]# chown -R sonar.sonar /opt/sonarqube-6.7.7/

5、编辑sonarqube配置文件
[root@localhost sonarqube-6.7.7]# vi conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://192.168.1.220:3305/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

sonar.web.host=192.168.1.x
sonar.web.port=x

保存退出。

6查看状态
[root@localhost ~]# cd /usr/local/src/sonarqube-6.7.7
[root@localhost sonarqube-6.7.7]# su sonar ./bin/linux-x86-64/sonar.sh status

说明:一直无法运行的时候删除sonarqube-6.7.7 下的temp文件
rm -f /opt/sonarqube-6.7.7/temp

7运行脚本启动服务

[root@localhost sonarqube-6.7.7]# su sonar ./bin/linux-x86-64/sonar.sh start
//以普通用户起服务,不然es启动会报错,用法:console、start、status、stop...

在启动彻底完成前不可信!什么叫启动"彻底完成"? 见下面:

至此,SonarQube启动成功!

排错说明:sonar.log  es.log  web.log

8、登录web端
在浏览器输入:http:// 192.168.1.217:9090
初始用户:admin
初始密码:admin
登录后,可以点击自己账户修改密码。

sonarqube+gitlab+jenkins+maven集成搭建(一)的更多相关文章

  1. Docker+Jenkins+Maven+SVN搭建持续集成环境

    Docker+Jenkins+Maven+SVN搭建持续集成环境 环境拓扑图(实验项目使用PHP环境) 发布流程图 环境说明 系统:Centos 7.4 x64 Docker版本:18.09.0 Ma ...

  2. Jekens 配置多项目SCM GitLab+Jenkins持续集成环境

    参考: 搭建GitLab+Jenkins持续集成环境图文教程 https://blog.csdn.net/ruangong1203/article/details/73065410 Jenkins中配 ...

  3. CentOS 7 Gitlab+Jenkins持续集成+自动化部署

    基于上次的环境<部署Gitlab+Jenkins持续集成环境> 来实现自动化部署 系统管理–>插件管理–>安装以下插件: Credentials Plugin(默认已经安装) ...

  4. GitLab+Jenkins持续集成

    一.概述 GitLab是一个代码仓库,用来管理代码.Jenkins是一个自动化服务器,可以运行各种自动化构建.测试或部署任务.所以这两者结合起来,就可以实现开发者提交代码到GitLab,Jenkins ...

  5. Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记

    前言    持续集成这个概念已经成为软件开发的主流,可以更频繁的进行测试,尽早发现问题并提示.自动化部署就更不用说了,可以加快部署速度,并可以有效减少人为操作的失误.之前一直没有把这个做起来,最近的新 ...

  6. Jenkins学习总结(3)——Jenkins+Maven+Git搭建持续集成和自动化部署的

    前言 持续集成这个概念已经成为软件开发的主流,可以更频繁的进行测试,尽早发现问题并提示.自动化部署就更不用说了,可以加快部署速度,并可以有效减少人为操作的失误.之前一直没有把这个做起来,最近的新项目正 ...

  7. Jenkins+Maven+Svn搭建持续集成环境持续集成和自动部署

    Jenkins和Hudson有很深的渊源,Jenkins目前更新频繁,目前选用Jenkins为持续集成工具和自动部署 Jenkins的使用有很多的介绍,主要记录如下要点: 192.168.1.240: ...

  8. SonarQube+jenkins+maven平台搭建

    SonarQube代码质量管理 1.配置jdk和maven jenkins - 系统管理 - 全局工具配置 jdk安装: # which java# /usr/local/java/jdk1.8.0. ...

  9. selenium+jenkins+maven+testNG搭建持续集成环境

    为了简明起见,分几大部分,很基础的细节就不详述了 一·安装jenkins 二·创建一个maven项目的job 2.1   填上SVN的Repository URL 2.2  由于是在本地执行maven ...

  10. CentOS 7 部署Gitlab+Jenkins持续集成(CI)环境

    持续集成概述及运行流程 : 持续集成概述 :持续集成(Continuous integration)持续集成是指开发者在代码的开发过程中 ,可以频繁的将代码部署集成到主干,并进行自动化测试  开发→代 ...

随机推荐

  1. Windows 本地虚拟磁盘

    本文介绍如何本地创建虚拟磁盘 虚拟磁盘vhdx是类似物理硬盘一样的磁盘,可以被格式化.内部添加分区,可以指定系统文件格式如NTFS.exFAT 一个vhdx文件对应一个虚拟磁盘,下面我们来操作vhdx ...

  2. CF1896H2

    看不懂的题 首先考虑 \([a_i\neq b_i]=-2a_ib_i+a_i+b_i\),所以: \[f(a,b)=\sum a_i+\sum b_i-2\sum a_ib_i=N-2\sum a_ ...

  3. Luogu P2292 HNOI2004 L 语言 题解 [ 紫 ] [ AC 自动机 ] [ 状压 dp ]

    L 语言:很好的一道状压 dp 题. 思路 看到这题,首先可以想到一个很暴力的 dp,设 \(dp_i\) 表示考虑到第 \(i\) 位能否被理解,暴力匹配字符串转移即可. 第一个优化也很显然,暴力匹 ...

  4. 管理虚拟机(virtual-manager)

  5. FreeSql学习笔记——5.删除

    前言   对于FreeSql来说,删除的支持并不强大,只有在Where条件不为空的时候才执行,否则返回0或默认值,不执行删除操作:     语法   fsql.Delete<Class>( ...

  6. 库卡KUKA机器人KRC2示教器维修常见方法

    库卡KUKA机器人以稳定性而备受赞誉.作为其重要组成部分,KRC2示教器在机器人的编程.监控和调试过程中发挥着至关重要的作用.然而,就像其他任何电子设备一样,KRC2示教器在长期使用过程中也可能会遇到 ...

  7. Deepseek学习随笔(7)--- 构建私人知识库(附网盘链接)

    Step 1:创建知识库 入口定位 登录 DeepSeek 控制台 → 左侧导航栏点击「知识库」→ 点击「新建知识库」按钮 基础设置 知识库名称:建议使用「领域+用途」命名法,如「医疗-糖尿病文献库」 ...

  8. 帝国CMS下iframe标签无法引入视频,ueditor编辑器中html标签无法显示问题,设置ueditor默认行高为1.75

    问题描述: 1.帝国cms后台添加优酷视频,使用到iframe,富文本编辑器中使用iframe引入视频后检查发现html代码未出现iframe字样,排查后发现为ueditor限制过滤了部分html代码 ...

  9. 关于JS框架的一点想法

    读了几页<vue.js设计与实现>,记录几点想法: 1.Html是根本 2.无论哪个框架,不管是运行时框架,还是编译时框架,最终都要通过标签"绘制"页面 3.这个&qu ...

  10. Easyexcel(2-文件读取)

    同步读取 读取单个Sheet 通过sheet方法指定对应的Sheet名称或下标读取文件信息 通过doReadSync方法实现同步读取 @Data public class UserExcel { @E ...