千家信息网

jenkins代码管理

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,持续集成之代码质量管理-Sonar [三]Sonar 介绍Sonar 是一个用于代码质量管理的开放平台。通过插件机制, Sonar 可以集成不同的测试工具,以及持续集成工具。与持续集成工具(例如 Hu
千家信息网最后更新 2026年11月03日jenkins代码管理

持续集成之代码质量管理-Sonar [三]

Sonar 介绍
Sonar 是一个用于代码质量管理的开放平台。通过插件机制, Sonar 可以集成不同的测试工
具,以及持续集成工具。与持续集成工具(例如 Hudson/Jenkins 等)不同, Sonar
并不是简单地把不同的代码检查工具结果(例如 FindBugs, PMD 等)直接显示在 Web 页面上,而
是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方
便地对不同规模和种类的工程进行代码质量管理。
在对其他工具的支持方面, Sonar 不仅提供了对 IDE 的支持,可以在 Eclipse 和 IntelliJ
IDEA 这些工具里联机查看结果;同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方
便地在持续集成中使用 Sonar。
此外, Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化
也有良好的支持。

Sonar 部署

Sonar 的相关下载和文档可以在下面的链接中找到: http://www.sonarqube.org/downloads/。
需要注意最新版的 Sonar 需要至少 JDK 1.8 及以上版本。
上篇文章我们已经可以成功的使用 git 进行拉去, Sonar 的功能就是来检查代码是否有 BUG。除了
检查代码是否有 bug 还有其他的功能,比如说:你的代码注释率是多少,代码有一些建议,编写语
法的建议。所以我们叫质量管理
Sonar 还可以给代码打分,并且引用了技术宅的功能(告诉你有很多地方没改)
Sonar 部署

   89  cd /usr/src/sonar   90  rz  上传所需软件包软件包我们通过 wget 或者下载, rz 上传到服务器

#软件包下载: https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.6.zip

   95  unzip sonarqube-5.6.zip   解压软件包   96  mv sonarqube-5.6 /usr/local/sonarqube   97  cd /usr/local/sonarqube/98  ln -s /usr/local/sonarqube/bin/linux-x86-64/sonar.sh  /usr/local/bin/ 链接命令目录

准备 Sonar 数据库
如果没有数据库请执行 yum install -y mariadb mariadb-server

  102  cd /usr/src/ MySQl5.7RPM  103  rz  上传所需rpm包  105  cd MySQl5.7RPM/  107  ls

  108  yum -y localinstall mysql-community-*  安装此目录的MySQL包  109  systemctl  start  mysqld              开启mysql 100 systemctl enable mariadb         设置开机自启

登录数据库并操作
110 mysqladmin -u root password 123 设置MySQL数据库密码

可以看到这里有问题。解决:
111 grep password /var/log/mysqld.log

红框中的就是密码
112 mysql -u root -p'yq%9XsyE:r&g' 登陆数据库
alter user 'root'@'localhost' identified by '123.com'

alter user 'root'@'localhost' identified by 'Xgp@123.com';

create database sonar character set utf8 collate utf8_general_ci;   创建数据库grant all on sonar.* to 'sonar'@'%' identified by 'Sonar@123.com';    设置授权用户grant all on sonar.* to 'sonar'@'localhost' identified by 'Sonar@123.com';  设置授权用户

配置 Sonar

  113  cd /usr/local/sonarqube/bin/  115  ls 

  116  ln -s /usr/local/sonarqube/bin/linux-x86-64/sonar.sh /usr/local/bin/ 链接命令目录  117  vim conf/sonar.properties   修改sonar配置文件sonar.jdbc.username=sonar            #14用户名sonar.jdbc.password=Sonar@123.com     #15密码sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance   #23去注释sonar.web.host=0.0.0.0   #99去注释sonar.web.port=9000    #106去注释

配置 Java 访问数据库驱动(可选)
默认情况 Sonar 有自带的嵌入的数据库,那么你如果使用类是 Oracle 数据库,必须手动复制驱动类到${SONAR_HOME}/extensions/jdbc-driver/oracle/目录下,其它支持的数据库默认提供了驱动。其它数据库的配置可以参考官方文档:
http://docs.sonarqube.org/display/HOME/SonarQube+Platform
启动 Sonar并查看端口
你可以在 Sonar 的配置文件来配置 Sonar Web 监听的 IP 地址和端口,默认是 9000 端口。
118 sonar.sh start 启动sonar
119 netstat -anpt | grep 9000 查看端口

120 tailf /usr/local/sonarqube/logs/sonar.log 查看sonar日志
#端口是 9000 哦!
Web 登陆: IP:9000
提示:
sonar 跟 jenkins 类似,也是以插件为主
sonar 安装插件有 2 种方式:第一种将插件下载完存放在 sonar 的插件目录,第二种使用 web 界面来使用安装存放插件路径[/usr/local/sonarqube/extensions/plugins/]

安装中文插件
登陆:用户名: admin 密码: admin


sonar安装'中文'和php插件

  132  cd /usr/local/sonarqube/extensions/plugins/    进入sonar宿主目录    133  cp /usr/src/sonar/sonar-l10n-zh-plugin-1.11.jar   ./  拷贝中文插件到sonar目录134 cp /usr/src/sonar/sonar-php-plugin-2.9-RC1.jar  ./  拷贝php插件到sonar目录需要重启才会生效  134  sonar.sh restart                                重启sonar  135  netstat -anpt | grep 9000             查看端口

生效后如下图:

下载扫描器插件

  140  cd /usr/src/sonar/  进入刚刚上传sonar包的目录  141  unzip sonar-scanner-cli-3.3.0.1492-linux.zip  解压扫描插件  142  mv sonar-scanner-3.3.0.1492-linux/ /usr/local/sonar-scanner  移动解压文件到sonar宿主目录  143  cd /usr/local/sonar-scanner/  进入sonar宿主目录  145  ln -s /usr/local/sonar-scanner/bin/sonar-scanner  /usr/local/bin/ 链接命令目录  146  ln -s /usr/local/sonar-scanner/bin/sonar-scanner  /usr/bin/ 链接命令目录

我们要将扫描器和 sonar 关联起来

143  cd /usr/local/sonar-scanner/144  vim conf/sonar-scanner.properties  修改sonar配置文件sonar.host.url=http://localhost:9000  #去注释  sonar 地址sonar.sourceEncoding=UTF-8  #8去注释  字符集以下四行来自/usr/ldocal/sonarqube/conf/sonar.properties   sonar.jdbc.username=sonar   #数据库账号sonar.jdbc.password=Sonar@123.com  #数据库密码sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance   #数据库连接地址#打开注释即可

我们现在需要找一个代码进行分析。

sonar 插件提供了一个代码的库
github:https://github.com/SonarSource/sonar-examples
我们下载软件包: https://github.com/SonarSource/sonar-examples/archive/master.zip
解压
150 unzip testalyzer-master.zip 解压测试文件
151 cd /usr/src/sonar/testalyzer-master/projects/languages/php/php-sonar-runner-unit-tests 进入测试文件

163 sonar-scanner 测试代码文件

提示: 我们什么都不指定就会在当面目录下扫描 sonar-project.properties 文件,根据配置文件进行扫描工作。扫描之后我们在 web 界面上就可以看到代码的扫描结果这里的名字,版本 都是在 sonar-project.properties 文件中定义的

质量阈帮我们设定好一个阈值,超过相应的阈值就算有 bug

测试第二个文件
cd /usr/src/sonar/testalyzer-master/projects/languages/javascript/javascript-sonar-runner
sonar-scanner 测试

为了让 jenkins 可以在构建项目的时候执行 sonar,所以我们需要在 jenkins 上安装插件

现在就可以进行配置,让 jenkins 和 sonar 结合在一起。这样我们构建项目的时候就会进行代码检测
http://192.168.1.40:8081/ jdk安装插件SonarQube Scanner. Gerrit Tr igge 需要一个一个来

安装完毕之后:现在就可以进行配置,让 jenkins 和 sonar 结合在一起。这样我们构建项目的时候就会进行代码检测
系统管理---系统设置---- add sonarqube server---name随意写 url sonarqube的路径http://192.168.1.40: 9000



点击保存

系统管理---全局工具配置---新增SonarQube Scanner--- 取消勾选自动安装----name随意写--- SONAR_RUNNER_HOME /usr/local/sonar- scanner

配置

配置上次课的web- demo项目----构建--- Execute SonarQube Scanner ----Analysis properties 内容在cat /usr/src/sonar/testalyzer-master/projects/languages/php/php-sonar-runner-unit-tests/sonar-project.properties(每个人安装目录不一样)

编辑我们的项目,选择最下放。找到构建

cat /usr/src/sonar/testalyzer-master/projects/languages/php/php-sonar-runner-unit-tests/sonar-project.properties

填写完毕后,我们点击保存

217 cd /usr/src/sonar/testalyzer-master/projects/languages/php/php-sonar-runner-unit-tests  219  cp -r *  /root/xgp-demo/      220  cd /root/xgp-demo/  进入xgp项目  221  git add *            上传到缓存  222  git commit -m "sonar"   上传到版板库  223  git push  origin  master  上传到远程库提示: 此时的 SonarQube 是无法点击的

浏览器JDK查看

点击 Console Output 可以查看构建输出的内容

#提示:只要没有 error 就可以

Gielab查看并修改名字

再次修改一下并把密钥修改一下

在sonar上查看添加了一个xgpa

Jenkins邮件告警

登陆QQ邮箱获取授权码

1、需要开启 POPE3/SMTP 服务
2、在 jenkins 上配置的密码我们需要点击生成授权码进行使用

回到jdk
系统管理---系统设置---Jenkins Location---- 系统管理员邮件地址
-----邮件通知---SMTP服务器smtp . qq. com
---用户默认邮件后缀@qq. com
---勾选使用smtp认证
用户名密码 (生成的授权码)
---勾选使用ssl
--- smtp端口 465
---勾选通过发送测试邮件测试配置



配置web- demo项目---构建后操作- --添加E -mail Notification---Recipient收件 人地址
---- Editable Email Notification---Project From填写项目名称----Project Recipient Lis t收件人邮箱地址-
Triggers---add Triggers----always-- Send To只保留Recipient List

失败邮件




测试:关闭git(失败邮件)
gitlab-ctl stop

成功邮件




测试:成功邮件
启动gitlab-ctl start

插件 代码 配置 目录 数据 数据库 文件 测试 邮件 管理 工具 项目 密码 注释 端口 地址 用户 系统 质量 支持 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技企业和互联网企业 金融科技创新监管互联网金融 互联网科技集团 科技创新互联网企业 四川狮子座互联网科技 重庆科技学院互联网 海南购全球互联网科技 北京三清互联网科技 互联网科技教育视频 南山科技园互联网公司有哪些 千方科技属于互联网企业吗 高科技互联网发展前景如何 玉溪新华互联网科技好不好 互联网时代的科技公司 互联网相关科技技术 西安有哪些互联网高科技企业 艺电能源互联网科技有限公司招聘 易租星互联网科技有限公司 求路客互联网科技电话 青岛易易互联网科技 有格互联网科技 山东特亿宝互联网科技有限公司 广州百单互联网科技有限公司 金融科技创新监管互联网金融 北京互联网络科技有限公司 西安互联网科技公司 开一家科技互联网公司需要多少钱 畅思互联网科技 本届互联网大会上的黑科技 小牛互联网科技有限公司地址
0