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
jenkins代码管理

   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

jenkins代码管理

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

登录数据库并操作
110 mysqladmin -u root password 123 设置MySQL数据库密码
jenkins代码管理
可以看到这里有问题。解决:
111 grep password /var/log/mysqld.log
jenkins代码管理
红框中的就是密码
112 mysql -u root -p'yq%9XsyE:r&g' 登陆数据库
alter user 'root'@'localhost' identified by '123.com'
jenkins代码管理
alter user 'root'@'localhost' identified by 'Xgp@123.com';
jenkins代码管理

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 

jenkins代码管理

  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 查看端口
jenkins代码管理
120 tailf /usr/local/sonarqube/logs/sonar.log 查看sonar日志
#端口是 9000 哦!
Web 登陆: IP:9000
提示:
sonar 跟 jenkins 类似,也是以插件为主
sonar 安装插件有 2 种方式:第一种将插件下载完存放在 sonar 的插件目录,第二种使用 web 界面来使用安装存放插件路径[/usr/local/sonarqube/extensions/plugins/]
jenkins代码管理
安装中文插件
登陆:用户名: admin 密码: admin
jenkins代码管理
jenkins代码管理
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             查看端口

生效后如下图:
jenkins代码管理

下载扫描器插件

  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 进入测试文件
jenkins代码管理
163 sonar-scanner 测试代码文件
jenkins代码管理
提示: 我们什么都不指定就会在当面目录下扫描 sonar-project.properties 文件,根据配置文件进行扫描工作。扫描之后我们在 web 界面上就可以看到代码的扫描结果这里的名字,版本 都是在 sonar-project.properties 文件中定义的
jenkins代码管理
质量阈帮我们设定好一个阈值,超过相应的阈值就算有 bug
jenkins代码管理
测试第二个文件
cd /usr/src/sonar/testalyzer-master/projects/languages/javascript/javascript-sonar-runner
sonar-scanner 测试
jenkins代码管理
jenkins代码管理

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

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

jenkins代码管理
jenkins代码管理
点击保存

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

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

编辑我们的项目,选择最下放。找到构建
jenkins代码管理
cat /usr/src/sonar/testalyzer-master/projects/languages/php/php-sonar-runner-unit-tests/sonar-project.properties
jenkins代码管理

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

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查看

jenkins代码管理

点击 Console Output 可以查看构建输出的内容
jenkins代码管理
#提示:只要没有 error 就可以
jenkins代码管理
Gielab查看并修改名字
jenkins代码管理

再次修改一下并把密钥修改一下
jenkins代码管理
jenkins代码管理

在sonar上查看添加了一个xgpa

jenkins代码管理

Jenkins邮件告警

登陆QQ邮箱获取授权码
jenkins代码管理
1、需要开启 POPE3/SMTP 服务
2、在 jenkins 上配置的密码我们需要点击生成授权码进行使用

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

jenkins代码管理
jenkins代码管理
jenkins代码管理

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

失败邮件

jenkins代码管理
jenkins代码管理
jenkins代码管理
测试:关闭git(失败邮件)
gitlab-ctl stop

jenkins代码管理

jenkins代码管理

成功邮件

jenkins代码管理
jenkins代码管理
jenkins代码管理
测试:成功邮件
启动gitlab-ctl start
jenkins代码管理

本文标题:jenkins代码管理
URL地址:https://www.cdcxhl.com/article24/ijcgce.html

成都网站建设公司_创新互联,为您提供企业网站制作网站内链网站建设建站公司商城网站网站营销

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设