Jenkins集成sonarQueb
用于检测、跟踪和修复代码中的缺陷、漏洞和技术债务。它提供了一套强大的静态代码分析工具,可以帮助开发团队进行代码质量评估和持续集成。
安装postgresql-11
参考文章:https://www.cnblogs.com/lfxx/p/17616078.html
-
添加PostgreSQL Yum存储库
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
-
安装PostgreSQL Server和客户端软件包
yum -y install postgresql11-server postgresql11
-
初始化数据库并启用自动启动
/usr/pgsql-11/bin/postgresql-11-setup initdb
-
启用远程访问PostgreSQL
vim /var/lib/pgsql/11/data/postgresql.conf # 修改 listen_addresses = '*' vim /var/lib/pgsql/11/data/pg_hba.conf # 修改 host all all 127.0.0.1/32 trust # 添加 host all all 0.0.0.0/0 md5
启动
systemctl start postgresql-11
-
设置PostgreSQL管理员用户的密码(一定要按照这种格式配置用户名和密码)
su - postgres psql -c "alter user postgres with password 'yfh@5432'"
-
防火墙需要开放5432端口
firewall-cmd --zone=public --add-port=5432/tcp --permanent systemctl restart firewalld
-
设置开机启动
sudo systemctl enable postgresql-11
安装Sonarqube9
参考文章:https://www.cnblogs.com/iancloud/p/17657253.html
因为我部署的jenkins使用的是jdk11,所有我选择安装Sonarqube9版本。
8. 下载安装包
sonarqube-9.6.1.59531.zip
拷贝到:
```bash
/home/sonarQube
```
解压:
```bash
unzip sonarqube-9.6.1.59531.zip
```
-
系统最大打开的文件数和进程的最大数目
因Sonarqube内嵌了ElasticSearch,而ElasticSearch的启动需要修改一些系统参数;
修改系统最大打开的文件数和进程的最大数目vim /etc/security/limits.conf
在最后一行添加下面四个参数,别把 * 忘记了,他是控制用户的
vim /etc/security/limits.conf * soft nofile 65536 * hard nofile 65536 * soft nproc 4096 * hard nproc 4096
生效配置,只有切换用户,或者重新登录才生效
# 切换用户 su root # 查看是否生效,如果是65536 则生效。 ulimit -Hn
-
修改Linux内核配置
```bash
vim /etc/sysctl.conf
```
在文件最后一行添加:
```bash
vm.max_map_count=655360
```
使其生效
```bash
sysctl -p
```
- 修改Sonarqube配置
编辑sonar配置文件
vim /home/sonarQube/sonarqube-9.6.1/conf/sonar.properties
找到下面的配置修改
```bash
# 数据库用户名
sonar.jdbc.username=postgres
# 数据库密码
sonar.jdbc.password=123456
# SQLServer数据库连接信息
sonar.jdbc.url=jdbc:postgresql://127.0.0.1:5432/sonarqube
```
- 创建用户、授权
Sonarqube9不支持root用户直接启用(实际上应该是内嵌的elasticsearch不支持),可以为其创建一个sonarqube用户来启用该程序
```bash
# 创建组
groupadd sonarqube
# 创建用户
useradd sonarqube -g sonarqube
# 授权
chown -R sonarqube:sonarqube /home
```
-
创建数据库
使用navcat连接pgsql,然后手动创建一个数据库,名称为:sonarqube
-
启动
切换用户su sonarqube
执行启动命令/home/sonarQube/sonarqube-9.6.1/bin/linux-x86-64/sonar.sh start
-
停止
/home/sonarQube/sonarqube-9.6.1/bin/linux-x86-64/sonar.sh start
-
安装中文插件
sonar-l10n-zh-plugin-9.6.jar
将该插件拷贝至/home/sonarQube/sonarqube-9.6.1/extensions/plugins目录,然后重启Sonarqube即可 -
安装完成
注意:
1.开通服务器防火墙sonarqube的web端口(默认:9000)或者关闭防火墙(不推荐)
2.默认登录用户密码:admin/admin
3.第一次登录需要重置默认密码 -
生成用户token,后续使用
生成的token复制下来,后续sonar-scanner-cli配置中会使用。生成token位置如图:
配置sonar-scanner-cli
-
复制到指定目录
我的目录是 /home/sonar-scanner-clicd /home/sonar-scanner-cli tar -zxvf sonar-scanner-cli-5.0.1.3006-linux.zip mv sonar-scanner-cli-5.0.1.3006-linux sonar-scanner-cli-5.0.1
-
修改配置文件
cd /home/sonar-scanner-cli/sonar-scanner-5.0.1/conf vim sonar-scanner.properties # 修改如下配置 #----- Default SonarQube server sonar.host.url=http://localhost:9000 sonar.login=squ_9c8120f0dccabb5f9c7ffa2167bb76330b89ed49
jenkins配置sonarqube
-
配置sonarqube
配置的地方在Manage Jenkins 下 System中,Server URL填写sonarqube的地址。
添加token并选择:
-
配置sonar-scanner-cli
配置的地方在Manage Jenkins 下 Tool 中。
-
配置html项目构建时使用sonar
进入项目配置,在Build Steps中添加质量检查,并拖拽到执行脚本之前。sonar.projectName=${JOB_NAME} sonar.projectKey=html sonar.source=.
-
配置maven项目使用soanr
进入项目配置,在Post Steps中添加质量检查,并拖拽到执行脚本之前。sonar.projectName=${JOB_NAME} sonar.projectKey=java sonar.sources=. sonar.java.binaries=target/classes
- 配置完成
配置完成后再进行项目构建时将会先进行代码质量检查,到此已经可以满足企业内部的基本使用了。