Jenkins与SonarQube配置

2023-10-27

Jenkins与SonarQube

Jenkins 配置 SonarQube
在 SonarQube 中生成 Server authentication token
登录 SonarQube 后,在 “My Account” => “Securiy” 中生成 toekn

1.2、在 Jenkins 的管理插件中安装 SonarQube Scanner 插件
已经安装好的平台Jenkins,在该平台中装上sonarscanner.
代码持续化集成(测试服务器部署)
http://192.168.1.x/
admin/admin
登陆jenkins,点击“系统管理”

点击“管理插件”:

 

 搜索sonar,安装。重启jenkins生效。

 

在已安装中可以查看到。

 

1.3、配置 SonarQube Sever
这部分和配置 GitHub Server 类似,在 “系统管理” => “系统设置” 中找到 SonarQube servers
Name:随意;
Server URL:192.168.1.217:9090;
Server authentication token: 输入之前生成的 token;

 

进入“系统管理”-“全局工具配置”-“SonarQube Scanner”,目录为安装SonarQube Scanner的目录。

 

1.4、配置 SonarScanner for MSBuild

在 “系统管理” => “全局 工具 配置” 找到 SonarScanner for MSBuild(
测试项目是基于 .NET ),官方提供了 .NET Framework 和 .NET Core 两个版本,我们可以先都加上,之后根据实际项目选择使用哪个。

 

1.5、Jenkins 任务配置
上面是 Jenkins 的一些全局配置,下面需要对单个任务进行配置。新建一个 “构建一个自由风格的软件项目” 类型的任务 “demo-sonar”

 

 

在构建中加入如下数据:
Task to run : scan
sonar.projectKey=demo
sonar.projectName=demo
sonar.projectVersion=1.0
sonar.sources=.
sonar.sourceEncoding=UTF-8
sonar.exclusions=node_modules/**/*,.idea/**/*
sonar.login=admin
sonar.password=admin

 

1.6、测试jenkins任务
在创建的jenkins任务中,点击“立即构建”即可立即执行sonar任务。

 

执行成功后,打开sonarqube的地址,即可看到代码检查结果。

 

2、jinkins与gitlab

 .1 创建项目

 

2.2打开配置
源码管理 git URL为gitlab上的项目源码地址
Add添加用户名密码

这里通过时间,每隔15分触发。

 

2.3构建设置
输入:
sonar.projectKey=neiras
sonar.projectName=neiras
sonar.projectVersion=1.1

sonar.language=java(未设置,则按多语言分析)

sonar.login=admin
sonar.password=admin
sonar.java.binaries=bin
sonar.sources=src
sonar.java.source=1.8

开始构建
应用,保存。立即构建。

 

2.5 sonarqube查看
构建完成。登陆sonarqube,查看neiras。

 

设置gitlab自动触发jenkins

 前面的步骤中已经完成了手动执行jenkins执行sonar任务完成构建部署任务,下面说明如何在代码提交后让gitlab自动触发jenkins执行sonar任务。

jenkins中安装gitlab插件
要实现gitlab自动触发jenkins任务,需要在jenkins中安装gitlab插件。从jenkins的“系统管理”-“管理插件”中找到gitlab插件并下载安装,重启jenkins后生效。

 

在gitlab中创建访问token
安装的gitlab插件在配置时,需要gitlab的访问token,先要在gitlab中创建访问的token。点击“用户设置”-“Access Tokens”菜单,进入访问token设置界面。然后输入“Name”,并在“Scopes”中勾选“api”,点击“Create ...”按钮即可创建访问token。创建成功后,一定要将生成的token保存下来,后面将无法再查看生成的token,如果未保存后面只能重新生成。

jenkins中配置gitlab插件
在jenkins中,进入“系统管理”-“系统设置”-“Gitlab”配置。
输入“Connection name”、“Gitlab host URL”,在“Credentials”中点击“Add”添加gitlab的授权token。

 

配置jenkins任务,启用触发器
进入jenkins的任务设置界面,在“构建触发器”中,勾上“Build when a change pushed to Gitlab.Gitlab webhook URL ...”(这里的webhook URL在后面配置gitlab时需要),根据自己的需要设置其它的选项。点击“高级”按钮,然后点击“Generate”按钮生成Secret token(这里的token后面配置gitlab时需要)。

在gitlab中配置webhook
在gitlab的项目设置中选择“Integrations”,然后在URL和Secret token中填入上一步jenkins设置中的到的内容。由于每次代码提交到gitlab后都触发jenkins执行任务,所以这里勾选“Push events”,然后去掉“Enable SSL verification”的勾选项,并点击“Add webhook”按钮添加。

 

webhook测试
添加完成后,在下面可以看到刚才添加的webhook,点击“Test”按钮在弹出的菜单中选择“Push events”发送测试请求,发送成功后会显示“Hook executed successfully”信息。
如果成功的话,HTTP返回码会返回200或者201。

webhook发送成功后,到jenkins中可以看到正在执行触发的任务。配置成功后,后面只要有git的tag提交到gitlab即可直接触发jenkins执行sonar任务。
这里时505错误代码,按说明调试后还未解决。

 

本地URL有问题,建议复制该项目
如图地址

 

完美解决。

第二种链接URL格式是http://<jenkisn的IP地址和端口>/gitlab/build_now/<jenkins的job名称>,例如jenkins的IP地址为192.168.4.1:8080,job名称是job,那么该URL为http://192.168.4.1:8080/gitlab/build_now/job1

3、moven集成sonar

在jenkins创建项目后,单纯的构建如下步骤,指定语言为java时只能扫描出java语言的重复率。取消指定java语言后可以检测出其他语言如后缀js的文件存在的bug。但不会扫描到java的漏洞。这里就需要moven来构建。需要修改moven配置文件,项目的pom.xml文件。

编辑位于$ MAVEN_HOME/conf/的settings配置文件,共两处
第一处:设置插件前缀

<settings>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
</settings>
3.2 配置sonar的服务器URL。
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.host.url>http://192.168.101.11:9000</sonar.host.url>
</properties>
</profile>
3.3 在maven项目的pom.xml文件中,添加以下信息
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.6.0.1398</version>
</plugin>
</plugins>
</pluginManagement>
</build>
说明:sonnar的版本4.0.0.1744
3.4 jenkins构建步骤

 

结果

 

这是我做运维的第一个月写的文档。用了一周时间弄出来的。有些许漏洞。还有很多部门不明其意,需要不断努力学习。

最后

当才华支撑不起野心的时候,需要静下心来学习。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jenkins与SonarQube配置 的相关文章

随机推荐

  • Rebalance&多线程实例消费(十二)

    上篇文章说了 kafka位移提交通过enable auto commit控制手动提交还是自动提交 手动提交又分为异步提交和同步提交 还可以指定分区进行提交 默认是提交给所有分区 手动提交可以对应不同的业务场景 当需要业务全部处理完才提交位移
  • 前端map传值

    封装数据ajax后端生成账单 submit click function var list new Array for let i 0 i lt dataList quickItemList length i let ele itemId
  • 关于实信号的双边谱和单边谱

    用MATLAB处理语音信号 做fft后要获得单边谱 本文收集资料进行了推导 对于fft数值后续操作从理论上做了一个理解 并且简洁的解释了fft函数的结果 供大家参考 欢迎批评指正 转载请注明原文地址 http blog csdn net t
  • 嵌入式菜单LCD简单版

    嵌入式菜单需求 相信大家做嵌入式的东西的时候 会有许多的参数需要显示到显示屏幕上 那么这些参数肯定不是拿来看看这么简单 最好还可以用按键来调节大小参数 任务要求 根据前面大家的需求 我们简单想想我们这个菜单需要做到什么程度 有了目标才可以更
  • java- string转成 json

    参考 技术参考 大幸运的博客技术站 1 String output FileUtils ReadFile url System out println output JSONArray jsonArray JSONObject parseA
  • java获取随机时间,在Java中生成随机日期时间(约达时间)

    Is it possible to generate a random datetime using Jodatime such that the datetime has the format yyyy MM dd HH MM SS an
  • 项目经理面试中可能遇到的问题(持续更新)

    1 范围 时间 成本 这三项中哪些是可以由客户控制的 范围 时间 成本 是项目管理中常说的三角关系 任何一方改变都可能牵扯到其他两方的变动 项目管理的本质 就是在保证质量的前提下 寻求这三者之间的最佳平衡 因为客户是需求方和投资方 客户有权
  • kafka 详细入门指南

    kafka 详细入门指南 避免浪费时间 gt 本篇定义Kafka 安装及入门实操 不涉及原理 后续会另一篇详解 kafka标签 开源的消息系统 scala和java是实现的 kafka最初由LinkedIn开发 2012年10月Apache
  • 上传图片到七牛云

    本文介绍后端如何将图片上传到七牛云 如有需要 可以参考 如有帮助 不忘点赞 预热准备 1 首先打开七牛云的官网 七牛云 2 注册一个人账号 新用户有优惠 具体可以查看官网通讯 3 进入个人控制台 打开 对象存储 gt 空间管理 然后我们新建
  • 【ffmpeg基础】ffmpeg视频编码

    一 ffmpeg编码H264 输入为YUV输出为H264 ffmpeg s 416x240 pix fmt yuv420p i BlowingBubbles 416x240 50 yuv r 50 vcodec libx264 Blowin
  • 【机器学习】pycm--史上最强多分类性能评估库

    0 博主介绍 博主介绍 大家好 我是可可卷 很高兴和大家见面 主攻领域 数据分析 机器学习 深度学习 数据可视化 欢迎关注 点赞 收藏 评论 作者水平很有限 欢迎各位大佬指点 一起学习进步 文章目录 0 博主介绍 1 情景引入 2 pycm
  • E5 CPU内存条数影响

    E5 v4 可支持4通道 双E5服务器8条内存即达到内存带宽 如果主板是16条 剩余的8条只增加容量 不再增加带宽 即只有在内存消耗很大 用到剩余8条内存时 内存才进行读写 写可能不完全是这样 总之 对性能的影响不大 以2697Av4为例
  • Window10下解决弹出兼容性助手对话框的方法

    注 Win7或其他版本可以参考这个 Win10下亲测可用 Window10下安装运行一些旧版的软件后 经常在运行或退出时弹出程序兼容性助手对话框 解决方法如下 1 关闭Windows服务下的程序兼容性服务 设置为禁用 2 在策略中设置 关闭
  • 1+X 云计算运维与开发(中级)案例实战——ZooKeeper集群部署

    传送门 教育部 职业教育将启动 1 X 证书制度改革 职业教育改革1 X证书制度试点启动 1 X成绩 证书查询入口 文章目录 什么是zookeeper 1 案例目标 2 案例分析 2 1 规划节点 2 2 基础准备 3 案例实施 3 1 基
  • 利用IDEA 进行debug发现错误的一次经历

    利用IDEA debug发现错误的一次经历 今天在做实训项目的时候遇到了一个问题 就是在进行添加学生信息的时 发现总是提示手机号码格式不正确 可是明明是以正确的格式输入的却总是提示格式错误 于是在这里打上断点并且按右上角的虫子按钮 同样输入
  • vue项目怎么安装依赖

    安装node js 从node js官网下载并安装node 安装过程很简单 一路 下一步 就可以了 傻瓜式安装 安装完成之后 打开命令行工具 输入 node v 如下图 如果出现相应的版本号 则说明安装成功 npm包管理器 是集成在node
  • 不想学习的时候如何逼迫自己去学习?(长文预警)

    尼采曾用酒神和日神来比喻人类艺术活动的两种方式 一种是日神的 走向世界 追求成功 类的理性 一种是酒神的 走向内心 寻求超越 类的情感 而从学习上来看 由于中国特殊的教育环境 几乎不可能有后者的闲情逸致 家长们送孩子们上学 除了超一线城市确
  • Hive概论、架构和基本操作

    Hive是一个构建在Hadoop上的数据仓库框架 最初 Hive是由Facebook开发 后台移交由Apache软件基金会开发 并做为一个Apache开源项目 Hive是基于Hadoop的一个数据仓库工具 可以将结构化的数据文件映射为一张数
  • vue简单实现查询排序功能

  • Jenkins与SonarQube配置

    Jenkins与SonarQube Jenkins 配置 SonarQube 在 SonarQube 中生成 Server authentication token 登录 SonarQube 后 在 My Account gt Securi