2024新版SonarQube+JenKins+Github联动代码扫描(2)-SonarQube代码扫描

news2024/11/16 9:26:59

文章目录

  • 前言
  • 一、docker方式安装sonar
  • 二、启动容器
  • 三、创建数据库
  • 四、启动sonarqube
  • 五、访问sonar
  • 六、如果访问报错-通过sonar日志定位问题
  • 七、修改密码
  • 八、汉化(看个人选择)
  • 九、扫描
    • 十、我遇到的Sonar报错以及解决办法
  • 总结


前言

这是2024新版SonarQube+JenKins+Github联动代码扫描专题的第二部分,也是核心内容,SonarQube目前是半开源,可以自定义漏洞扫描规则,这个后面有时间可以出一篇教程,本文主要是讲2024最新版的配置和如何进行代码扫描。


提示:以下是本篇文章正文内容,下面案例可供参考

一、docker方式安装sonar

经过实践,最方便的还是docker安装,简单又快捷,可以节省很多时间。依次输入两条命令:

docker pull postgres:latest
docker pull sonarqube

二、启动容器

docker run --name db -p 5432:5432 -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgres

三、创建数据库

进入容器命令:

docker exec -it db /bin/bash

进入postgres命令行:

psql -U sonar

创建sonar数据库:

create database sonar;

给sonar授权:

alter role sonar createdb;alter role sonar superuser;alter role sonar createrole;

更改sonar数据库拥有者(这一步是必须的,否则会sonarqube会连接失败):

alter database sonar owner to sonar;

在这里插入图片描述

退出postgres命令行:

\p

退出docker进入linux命令行:

exit

一套操作下来,就完成安装了。这都是踩过很多坑才总结出来0报错,又快又简单的方法,我很惨的🐶。

四、启动sonarqube

docker run --name sq -e sonar.jdbc.password=sonar -e sonar.jdbc.username=sonar -e sonar.jdbc.url=jdbc:postgresql://postgres/sonar --link db:postgres -p 9000:9000 -d sonarqube

五、访问sonar

启动成功后登录ip:9000端口就可以访问了 默认账号密码:admin

六、如果访问报错-通过sonar日志定位问题

docker logs -f -t --tail==100 容器ID

七、修改密码

在这里插入图片描述

八、汉化(看个人选择)

插件市场搜索chinese,然后下载即可。
在这里插入图片描述

然后sonar会弹出重启服务的按钮,点击就行。刷新后就会变成中文版。

九、扫描

新建项目,显示名可以随意填写,能够清晰理解即可:
在这里插入图片描述

点击下一步->使用全局设置->创建projects:
在这里插入图片描述

选择本地后,创建令牌,然后选择Maven或者其他,我选择的是Maven的:
在这里插入图片描述

有一个执行SonarQube扫描的命令,直接进入到项目的根目录,用这条命令运行即可,如果不加sudo可能会报错,所以建议大家加上sudo:
sudo mvn clean verify sonar:sonar
-Dsonar.projectKey=zangccJavaDemo
-Dsonar.projectName=‘zangccJavaDemo’
-Dsonar.host.url=
-Dsonar.token=

记得在运行上面命令之前,切换好当前的jdk版本,根据项目的jdk来决定:

在这里插入图片描述

切换好jdk之后,再运行扫描命令即可:
在这里插入图片描述

命令运行成功会显示BUILD SUCCESS,否则运行失败。Sonarqube的主界面会自动刷新,显示扫描的结果:
在这里插入图片描述

十、我遇到的Sonar报错以及解决办法

问题1:[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin::sonar (default-cli) on project cmdb-nettopo-ftp-c1bb-connector: Execution default-cli of goal org.sonarsource.scanner.maven:sonar-maven-plugin::sonar failed: An API incompatibility was encountered while executing org.sonarsource.scanner.maven:sonar-maven-plugin::sonar: java.lang.UnsupportedClassVersionError: org/sonar/batch/bootstrapper/EnvironmentInformation has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

解决办法:
mvn命令前添加sudo即可解决,还有就是记得对应好当前命令终端的jdk版本。

问题2:报错“maven 打包 不再支持源选项 5。请使用 7 或更高版本”。
解决办法:这是由于没有指定java的版本造成的。我们可以在pom.xml中添加如下的属性。

<properties>
    <!-- 这里的{jdk_version}填入你的jdk版本,我使用的是openjkd14 -->
    <maven.compiler.target>{jdk_version}</maven.compiler.target>
    <maven.compiler.source>{jdk_version}</maven.compiler.source>
</properties>

也可以在原本pom.xml文件中修改java.version:
在这里插入图片描述

问题3:报错Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2
解决办法:是因为 maven-war-plugin:2.2这个插件版本太低导致将项目打成war包失败了,然后在pom.xml文件中引入更新版本的插件项目就能正常安装了。到此问题解决。

<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-war-plugin</artifactId>
			<version>3.2.1</version>
</plugin>

总结

JenKins安装与配置是SonarQube+JenKins+Github联动代码扫描的第二步。完整内容为:

2024新版SonarQube+JenKins+Github联动代码扫描(1)-JenKins安装与配置.

2024新版SonarQube+JenKins+Github联动代码扫描(2)-SonarQube代码扫描.

2024新版SonarQube+JenKins+Github联动代码扫描(3)-三者联动配置最终章.

欢迎大家关注EureKaSec,无论是技术交流还是有兴趣加入我们团队,都欢迎随时联络沟通。
在这里插入图片描述

    文章原创,欢迎转载,请注明文章出处: 2024新版SonarQube+JenKins+Github联动代码扫描(2)-SonarQube代码扫描.。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1490652.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【OpenGL编程手册08】 摄像机

一、说明 前面的教程中我们讨论了观察矩阵以及如何使用观察矩阵移动场景&#xff08;我们向后移动了一点&#xff09;。OpenGL本身没有摄像机(Camera)的概念&#xff0c;但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机&#xff0c;产生一种我们在移动的感…

关于python函数参数传递

参数传递 在 python 中&#xff0c;类型属于对象&#xff0c;对象有不同类型的区分&#xff0c;变量是没有类型的&#xff1a; 在下面的代码示例重&#xff0c;[1,2,3] 是 List 类型&#xff0c;“qayrup” 是 String 类型&#xff0c;而变量 a 是没有类型&#xff0c;它仅仅…

PyTorch深度学习实战(38)——StyleGAN详解与实现

PyTorch深度学习实战&#xff08;38&#xff09;——StyleGAN详解与实现 0. 前言1. StyleGAN1.1 模型介绍1.2 模型策略分析 2. 实现 StyleGAN2.1 生成图像2.2 风格迁移 小结系列链接 0. 前言 StyleGAN (Style-Generative Adversarial Networks) 是生成对抗网络 (Generative Ad…

使用AI创建令人惊叹的3D模型

老子云平台《《《《《 使内容创作者能够在一分钟内毫不费力地将文本和图像转换为引人入胜的 3D 资产。 文本转 3D 我们的文本转 3D 工具使创作者&#xff08;包括那些没有 3D 经验的创作者&#xff09;能够使用文本输入在短短一分钟内生成 3D 模型。 一句话生成3D模型 老子…

Day31|贪心算法1

贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 无固定套路&#xff0c;举不出反例&#xff0c;就可以试试贪心。 一般解题步骤&#xff1a; 1.将问题分解成若干子问题 2.找出适合的贪心策略 3.求解每一个子问题的最优解 4.将局部最优解堆叠成全局最…

Unity2023.1.19_ECS_DOTS

Unity2023.1.19_ECS_DOTS 盲学-盲目的学习&#xff1a; 懒着自己整理就看看别人整理的吧&#xff0c;整合一下逻辑通了不少&#xff1a; DOTS/data oriented technology stack-面向数据的技术栈 ECS/Entities-Component-System Unity-Entities包 Entities提供ECS架构面向数…

C语言操作符详解(一)

一、操作符的分类 • 算术操作符&#xff1a; 、- 、* 、/ 、% • 移位操作符:<< >> • 位操作符: & | ^ • 赋值操作符: 、 、 - 、 * 、 / 、% 、<< 、>> 、& 、| 、^ • 单⽬操作符&#xff1a; &#xff01;、、--、&、*、、…

蓝桥杯练习系统(算法训练)ALGO-987 强力党逗志芃

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 逗志芃励志要成为强力党&#xff0c;所以他将身上所以的技能点都洗掉了重新学技能。现在我们可以了解到&#xff0c;每个技…

express+mysql+vue,从零搭建一个商城管理系统9--添加商户

提示&#xff1a;学习express&#xff0c;搭建管理系统 文章目录 前言一、新建models/shop.js二、新建routes/shop.js三、修改routes下的index.js四、添加商户总结 前言 需求&#xff1a;主要学习express&#xff0c;所以先写service部分 一、新建models/shop.js models/shop.…

Python数据分析案例38——我国个人工作总收入影响因素分析

案例背景 偶然之间找到了CSFP(中国家庭追踪调查)的数据集&#xff0c;一个很全的家庭调查数据集。所以就想对大家现在最关心的工资和其影响因素做一点分析。 得到的结论还挺有价值的&#xff0c;有符合逻辑的&#xff0c;也有反直觉的。 数据来源 CFPS由北京大学中国社会科学…

element loading遮罩层添加按钮

<el-table v-loading"loadingText" element-loading-text"拼命加载中" :data"tableData" :tableColumn"tableColumn" :span-method"objectSpanMethod" border :cell-style"cellStyle" :header-cell-style"…

现代信号处理学习笔记(三)信号检测

通过观测数据判断信号是否存在&#xff0c;这一问题称为信号检测。 目录 前言 一、统计假设检验 1、信号检测的基本概念 2、信号检测理论测度 比率测度 概率测度 3、决策理论空间 二、概率密度函数与误差函数 1、概率密度函数 2、误差函数与补余误差函数 三、检测概…

第二证券|飞行汽车最大订单诞生,万亿级产业待起飞!概念股早盘大涨

开年以来&#xff0c;飞翔轿车赛道利好不断。 飞翔轿车草创公司斩获大订单 据媒体报道&#xff0c;美国飞翔轿车草创公司Alef Aeronautics表明&#xff0c;其电动笔直起降&#xff08;eVTOL&#xff09;飞翔器的预定最近创下了新纪录&#xff0c;订单量已到达2850份。埃隆马斯…

Cesium绘制带有方向的线

export const MAP_3D_BEGIN_CALC (lineStringData, geoData) > {// 画方向线map.entities.add({name: uav-tmp-line,polyline: {positions: Cesium.Cartesian3.fromDegreesArray(lineStringData),material: new Cesium.PolylineArrowMaterialProperty(Cesium.Color.RED),//…

windows下tensorflow-gpu2.5+cudn11.2+cudnn8.1环境配置

1.下载visualStidio2019&#xff08;cudn要用到&#xff09; 要下载2019版本&#xff0c;2022好像不很适配&#xff0c;cudn11.2以上的版本或许可以尝试 visualstidio官网是2022版本&#xff0c;找2019的下载Visual Studio 2019 版本 16.11 发行说明 | Microsoft Learn 勾选…

【C语言】Leetcode 206.反转链表

博主主页&#xff1a;17_Kevin-CSDN博客 收录专栏&#xff1a;《Leetcode》 题目 解决思路 思路一&#xff1a;翻转链表 struct ListNode* reverseList(struct ListNode* head) {if(head NULL){return NULL;}struct ListNode* n1 NULL,*n2 head,*n3 n2 -> next;while(…

ChatGPT Plus 如何开启插件

ChatGPT Plus 如何开启插件 购买完 ChatGPT Plus 会员之后&#xff0c;需要手动开启才能使用 GPT 的插件和 Code interpreter服务。 ​ 具体步骤如下&#xff1a; 1. 进入设置 点击左下角个人邮箱的位置&#xff0c;在弹窗中选择 Settings &Beta 2. 开启选项 在设置选…

紫光展锐T618_4G安卓核心板方案定制

紫光展锐T618核心板是一款采用纯国产化方案的高性能产品&#xff0c;搭载了开放的智能Android操作系统&#xff0c;并集成了4G网络&#xff0c;支持2.5G5G双频WIFI、蓝牙近距离无线传输技术以及GNSS无线定位技术。 展锐T618核心板应用旗舰级 DynamlQ架构 12nm 制程工艺&#x…

以线缆行业为例,工业智能网关的实际应用及其带来的变革-天拓四方

工业智能网关是一种集数据采集、传输、处理和分析于一体的智能化设备。它能够实现对工业现场各种传感器、执行器等设备的数据进行实时采集&#xff0c;并通过网络传输到云端或本地数据中心进行分析处理。同时&#xff0c;工业智能网关还具备边缘计算能力&#xff0c;能够在本地…

Domain Adaptation Vs. Prompt-Tuning:能否用域自适应解决大模型提示学习问题?

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 作者简介 李江梦&#xff0c;中国科学院软件研究所天基综合信息系统全国重点实验室助理研究员 论文简介 今天介绍的是被机器学习领域顶级学术会议ICLR 2024接收的论文&#xff1a;BayesPrompt: Prompting Large…