前言
这是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中添加如下的属性。
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!