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

文章目录

  • 前言
  • 一、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.mzph.cn/news/721844.shtml

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

相关文章

Python算法题集_分割回文串

Python算法题集_分割回文串 题131&#xff1a;分割回文串1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【参数回退回溯单行回文检测】2) 改进版一【参数回退回溯lambda回文检测】3) 改进版二【参数回退回溯函数回文检测】4) 改进版三【堆栈回退…

重绘和重排应该如何理解和避免

重绘和重排是浏览器渲染过程中的两个重要概念&#xff0c;它们都会影响页面的性能。以下是对重绘和重排的详细理解以及如何避免它们的建议&#xff1a; 一、重绘&#xff08;Repaint&#xff09; 1.1 理解 重绘是指元素的几何属性不变&#xff0c;页面的外观发生变化&#x…

Python - getpass

文章目录 关于 getpass基本使用语法说明其它 关于 getpass getpass 是 Python 自带标准库 Python 官方文档 - getpass https://docs.python.org/3/library/getpass.html 基本使用 我们在看视频教程中&#xff0c;老师如果不想在代码中暴露 token、密码之类的信息&#xff0c…

Leet code 611 有效三角形个数

简单有效的思路&#xff1a;双指针解法 比如给出一个nums{4&#xff0c;3&#xff0c;2&#xff0c;4&#xff0c;5&#xff0c;6&#xff0c;8&#xff0c;10} 先将nums排序 -> { 2, 3, 4, 4, 5, 6, 8, 10} for(int inums.size()-1;i>2;i--) i的下标为当前最大值的下…

管理npm源:如何使用nrm工具提升你的开发效率

在 JavaScript 和 Node.js 的开发过程中&#xff0c;npm&#xff08;Node Package Manager&#xff09;扮演着至关重要的角色&#xff0c;它是管理项目依赖的主要工具。然而&#xff0c;由于网络环境的差异&#xff0c;特别是在中国大陆&#xff0c;直接使用 npm 官方源可能会遇…

【C++】继续学习 string类 吧

开始使用 string类 吧 1 继续学习1.1 扩容机制1.2 string类对象的访问及遍历操作1.3 string类对象的修改操作1.4 其他一些成员函数 2 实践解决问题&#xff1a;Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;&#xff01;&#xff01;下一篇文章见&…

钉钉h5应用 环境报错Error: Do not support the current environment:notInDingTalk

钉钉h5应用 环境报错 Error: Do not support the current environment&#xff1a;notInDingTalk problem Error: Do not support the current environment&#xff1a;notInDingTalk reason 前端页面运行在普通浏览器 solution 需要将h5页面在后台发布后&#xff0c;在钉…

L2-001 紧急救援(Java)

作为一个城市的应急救援队伍的负责人&#xff0c;你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候&#xff0c;你的任务是带领你的…

使用awk和正则表达式过滤文本或字符串 - 详细指南和示例

当我们在 Linux 中运行某些命令来读取或编辑字符串或文件中的文本时&#xff0c;我们经常尝试将输出过滤到感兴趣的特定部分。这就是使用正则表达式派上用场的地方。 什么是正则表达式&#xff1f; 正则表达式可以定义为表示多个字符序列的字符串。关于正则表达式最重要的事情之…

自建Redis蜜罐以捕获和分析潜在攻击

一、引言 随着网络攻击的日益频繁和复杂&#xff0c;传统的防御措施往往难以应对。蜜罐作为一种主动防御技术&#xff0c;通过模拟有价值的服务来吸引攻击者&#xff0c;从而收集和分析攻击数据&#xff0c;提高网络安全性。本文将介绍如何自建一个Redis蜜罐&#xff0c;以捕获…

微服务-高级篇

微服务-高级篇 一.微服务保护1.初识Sentinel2.微服务整合Sentinel3.限流4.隔离和降级5.授权规则6.规则管理模式 二、分布式事务1.什么是分布式事务&#xff1f;2.理论基础3.部署与集成Seata4.Seata的四种模式5.Seata高可用 三、分布式缓存1.Redis持久化2.搭建主从架构与哨兵模式…

纷争不断的低代码平台

在IT行业&#xff0c;技术的更新换代总是伴随着争议和质疑。低代码平台&#xff0c;作为一种旨在简化软件开发过程的技术&#xff0c;也不例外。但是&#xff0c;就像任何新兴技术一样&#xff0c;真正的价值往往在于实际应用中得到验证。今天&#xff0c;我要分享的故事&#…

【理解机器学习算法】之Nearest Shrunken Centroid(纯Python)

从头开始实现最近缩小质心&#xff08;NSC&#xff09;分类器涉及理解它如何通过将质心缩小到所有类的总质心方向来修改基本的最近质心方法&#xff0c;有效地执行特征选择。这种方法特别是在微阵列预测分析&#xff08;PAM&#xff09;中的应用而闻名。这里&#xff0c;我们将…

13. Nginx进阶-平滑升级

简介 注意点 当前服务器不关机&#xff1b;用户可以正常访问&#xff1b;由低版本升为高版本&#xff1b;只支持编译安装的nginx&#xff1b; 升级的原理 在不停掉老进程的情况下&#xff0c;启动新进程。老进程负责处理仍然没有处理完成的请求&#xff0c;但不接受新请求。…

docker 安装 Jenkins

一、安装 jenkins 中文文档&#xff1a; https://www.jenkins.io/zh/doc/book/installing/#docker jenkins 提供了详细的安装方式和步骤&#xff0c;这里咱们使用 docker 进行安装 根据文档上的命令&#xff0c;自己修改如下&#xff1a; docker run \ -u root \ --name jenki…

嵊州吃喝玩乐篇

1. 豆腐馒头 胖大姐豆腐馒头&#xff08;推荐&#xff09; 地址: 嵊州市越秀路96-98号 高德地图搜 “胖大姐黄泽豆腐馒头” 黄泽豆腐馒头 地址&#xff1a;嵊州市越秀路111号 高德地图搜 “嵊州市玉英豆腐馒头店” 2. 烧烤 老张烧烤&#xff08;推荐&#xff09; 地址&a…

【IDEA】2023版IDEA安装破解教程

2023版IDEA安装破解教程 第一步&#xff1a;IDEA的卸载 这里以Windows11系统为例&#xff0c;首先我们打开控制面板&#xff0c;点击程序&#xff0c;找到自己的IDEA&#xff0c;双击卸载。&#xff08;或者可以直接找到idea所在文件位置&#xff0c;直接delete文件夹&#x…

vue实现xml,sql,JSON自动格式化高亮

实现xml&#xff0c;json&#xff0c;sql代码组件格式化高亮&#xff1a; 需要下载的依赖&#xff1a; <template><div class"box"><div class"top" v-if"flag"><span class"text">Theme:</span><…

Vue2:路由守卫实现权限管理之全局前置路由守卫

一、情景说明 我们访问任何一个互联网系统&#xff0c;如淘宝、CSDN等&#xff0c;都会遇到按钮权限的情况。 那么&#xff0c;如何在Vue项目中实现按钮权限控制了&#xff1f; 这里就用到了路由守卫技术 它可以类比于SpringBoot项目中的拦截器。 在拦截器里做的权限控制。 …

惠普 DsekJet GT 5810/5820常见问题及解决方法

1、HP DeskJet GT 5810/5820机器的屏幕出现“P”时&#xff0c;该如何操作&#xff1f; 当屏幕出现“P”时&#xff0c;放入A4纸&#xff0c;按住“进纸键”3秒即可&#xff0c;打印机会打印出一张校准页。 2、HP DeskJet GT 5810/5820机器的屏幕出现“A”时&#xff0c;该如何…