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构建步骤

结果

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

最后

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

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. 一种面向混合云平台基于LSTM预测模型的资源池配额方法。

    本文分享自天翼云开发者社区<一种面向混合云平台基于LSTM预测模型的资源池配额方法.>,作者:l****n 基于用户的历史配额申请情况和实际资源使用情况组成数据集搭建LSTM时序预测模型. ...

  2. Django项目实战:创建和迁移数据库

    Django项目实战:创建和迁移数据库 一.配置数据库 Django默认使用SQLite数据库,但你也可以选择其他数据库如MySQL.PostgreSQL等.在./settings.py文件中,你可以 ...

  3. .NET Core内存结构体系(Windows环境)底层原理浅谈

    物理内存与虚拟内存 物理内存(Physical Memory) 定义:物理内存是计算机硬件中的实际RAM(如DDR5内存条),直接通过总线与CPU连接,用于临时存储运行中的程序和数据. 虚拟内存(Vi ...

  4. 安川MOTOMAN机器人NX100维修的注意事项

      安川MOTOMAN机器人NX100维修,操作人员安全注意事项 整个机器人的最大动作范围内均具有潜在的危险性. 为机器人工作的所有人员 (安全管理员.安装人员.操作人员和机器人维修人员) 必须时刻树 ...

  5. npm配置

    在 Node.js 中,npm(Node Package Manager)是 JavaScript 包的默认管理工具.要查看 npm 的配置,你可以使用 npm config 命令配合不同的子命令来获 ...

  6. KTransformer实战DeepSeek-R1-1.58bit量化模型

    技术背景 在上一篇文章中,我们介绍过KTransformers大模型高性能加载工具的安装和使用方法.但是当时因为是在一个比较老旧的硬件上面进行测试,其实并没有真正的运行起来.现在补一个在KTransf ...

  7. Tauri新手向 - 基于LSB隐写的shellcode加载器

    此篇是记录自己初次学习tauri开发工具,包含遇到的一些问题以及基本的知识,也给想上手rust tauri的师傅们一些小小的参考.此项目为保持免杀性暂不开源,希望各位师傅多多支持,反响可以的话后续会放 ...

  8. Django实战项目-学习任务系统-需求说明

    一,需求说明 在我最近的阅读中,我深深被一些关于智能或系统的小说吸引.这些小说的主角意外获得某种神秘的智能或系统,然后通过完成系统发布的各种任务,逐渐提升自己的知识和能力.即使是普通的屌丝,也能在系统 ...

  9. IvorySQL 升级指南:从 3.x 到 4.0 的平滑过渡

    日前,IvorySQL 4.0 重磅发布,全面支持 PostgreSQL 17,并且增强了对 Oracle 的兼容性.关于 IvorySQL 4.0 的介绍,各位小伙伴可以通过这篇文章回顾:Ivory ...

  10. Docker 镜像及容器命令

    授人以鱼不如授人以渔,先列出官方命令文档 docker命令文档地址:https://docs.docker.com/engine/reference/commandline/images/ 镜像相关指 ...