docker安装sonar后集成本地代码进行质量分析

背景

   在完成代码后,想做一个较低层级的代码自检,来完善自己代码的质量

技术选型

    在结合现有项目情况下,结合Jenkins走CI CD过程,选择了sonarqube

安装

下载地址:自己搜

安装教程我来出,首先sonarqube完整的过程分了两部分,第一部分也就是服务部分,以此来说明sonr服务是有了,但是要对自己代码进行检查还得结合sonarScanner,这个作为扫描本地代码的执行入口。

正文

第一部分-sonarqube

这里采用的docker进行安装,所以相对来将比较容易。(docker安装应用很丝滑,强烈安利),安装成功后,在浏览器中输入IP地址+端口(1.1.1.1:9000)类似这种,端口号可以在安装的时候进行指明。

成功登录,并访问,说明sonarqub已经安装成功,这里需要特别说明的一点是:

  • Community Edition
  • 版本 10.3 (build 82913)
  • 在这版本之前 已经不清楚是那个版本了,还支持mysql的,现在这个版本已经不再支持mysql作为底层数据库,不过这样也好,之前为它安装mysql 很费劲。这里采用的PostgreSQL

如果不为sonar安装数据库,在执行sonarScanner的时候,不会报错,但是在Scanner执行成功后,在首页是看不到对应执行结果的可视化。而且页面也会提示"主分支没有代码"和页面底部会提示"内部数据库仅支持测试用,若需要高级测试,请为此安装外部数据库"

 PostgreSQL的用法

列出所有数据库:\l

创建数据库:create databases 数据库名;

其他命令自己百度查看。

还需要特别说明一点的时,在sonar.properties配置数据库的时候,由localhost改为ip。不然提示来连接拒绝。如下进行配置

# User credentials.
# Permissions to create tables, indices and triggers must be granted to JDBC user.
# The schema must be created first.
sonar.jdbc.username=postgres
sonar.jdbc.password=123456#sonar.jdbc.url=jdbc:mysql://192.168.40.64:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false#----- Embedded Database (default)
# H2 embedded database server listening port, defaults to 9092
#sonar.embeddedDatabase.port=9092#----- Oracle 19c/21c
# The Oracle JDBC driver must be copied into the directory extensions/jdbc-driver/oracle/.
# Only the thin client is supported, and we recommend using the latest Oracle JDBC driver. See
# https://jira.sonarsource.com/browse/SONAR-9758 for more details.
# If you need to set the schema, please refer to http://jira.sonarsource.com/browse/SONAR-5000
#sonar.jdbc.url=jdbc:oracle:thin:@localhost:1521/XE#----- PostgreSQL 11 or greater
# By default the schema named "public" is used. It can be overridden with the parameter "currentSchema".
sonar.jdbc.url=jdbc:postgresql://192.168.40.64/sonarqube?currentSchema=public

至此,sonarqube部分的安装就已经安装成功,值得注意的时,为它安装新的数据后,重启生效且登录名和密码变为初始密码和账户。

第二部分-sonarScanner

如果扫描本地代买需要在指定项目的根目录创建一个 sonar-project.properties

# must be unique in a given SonarQube instance
sonar.projectKey=auto
sonar.findbugs.allowuncompiledcode=true
# --- optional properties ---# defaults to project key  这个必须要
sonar.projectName=auto
# defaults to 'not provided'  这个用于版本说明
sonar.projectVersion=1.0# Path is relative to the sonar-project.properties file. Defaults to . 用于指定扫描代码路径
sonar.sources=C:/devlopePath/new_nergeryApp_auto# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8
#
#sonar.host.url=http://localhost:9000
#
#sonar.login=admin  开了鉴权或者安装的时候需要
#
#sonar.password=adminadmin
# 
#sonar.language=python
#
#sonar.scm.provider=git#sonar.python.binaries=C:\\devlopePath\\new_nergeryApp_auto

然后去下载对应的sonarScanner下载好后,可以将其路径作为环境变量写入到系统环境变量中,我这里就没有这要操作,所以执行命令的时候需要指明Scanner启动命令的位置

 C:\applicationloadPath\sonar-scanner-5.0.1.3006-windows\bin\sonar-scanner.bat -D"sonar.projectKey=localPython" -D"sonar.sources=." -D"sonar.host.url=http://192.168.40.64:9000" -D"sonar.token=sqp_a0d5d4f686d3f817ad9d2242c05cd2b9b0de997b"

需要特别说明的是,需要在项目根目录中执行这条命令,里面的参数值更具实际情况变动。执行完毕后,刷新页面。就可以看到对应的扫描结果

留点悬念

1.在Jenkins中完成同样操作的实现过程,我也知道啊! 

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

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

相关文章

【操作系统】快速做题向 如果在限制为两道的多道批处理系统,有N个作业进入系统,作业调度采用XXX算法,进程调度采用XXX算法 题型解法

如下类似的题该怎么解? 要搞清楚什么是作业调度,什么是进程调度(处理器调度的层次的知识点) 把上面的读一下 不严谨的说就是,系统 调度 作业,这里就是 作业调度,这里就会用到某种调度算法&…

【Linux】查看Java进程并编写脚本停止和启动

😄手动停止和启动 假设Jar包名称为 ikun666.jar 1. 通过命令查看java进程 ps -aux | grep java2. kill掉进程 kill -9 你jar包的进程号3. 启动jar包 nohup java -jar ikun666.jar >/dev/null 2>&1 &😄编写脚本 获取进程号 方式一&a…

nodejs连接mongodb报错SyntaxError: Unexpected token .

nodejs连接mongodb报错SyntaxError: Unexpected token 如下图 经过排查,原因是npm默认安装的mongodb插件是最新版6.3.0 ,而mongodb数据库版本是4.0.0 ,两者版本不同导致nodejs报错。 解决方法是npm卸载新版本的mongodb插件,再安…

SpringBoot actuator应用监控

文章目录 引入依赖端点(Endpoints)端点种类端点开启配置暴露端点手动暴露端点 端点保护引入spring security依赖配置security 端点响应缓存访问端点路径修改CORS跨域支持健康信息(/actuator/health)自定义healthInfo 应用信息(/actuator/info) 监控信息可视化引入依赖配置查看配…

CentOS安装jdk

1、查看可安装版本 yum -y list java* 2、安装jdk1.8版本 yum -y install java-1.8.0-openjdk 3、查看版本 java -version 4、安装目录为: /usr/lib/jvm 5、卸载 yum -y remove java-1.8.0-openjdk

【python基础】-- yarn add 添加依赖的各种类型

目录 1、安装 yarn 1.1 使用npm安装 1.2 查看版本 1.3 yarn 淘宝源配置 2、安装命令说明 2.1 yarn add(会更新package.json和yarn.lock) 2.2 yarn install 2.3 一些操作 2.3.1 发布包 2.3.2 移除一个包 2.3.3 更新一个依赖 2.3.4 运行脚本 …

【Android Studio】各个版本下载地址

下载地址: https://developer.android.com/studio/archive?hlzh-cn

LeetCode刷题--- 子集

个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题【 http://t.csdnimg.cn/yUl2I 】【C】 【 http://t.csdnimg.cn/6AbpV 】数据结构与算法【 http://t.csdnimg.cn/hKh2l 】 前言:这个专栏主要讲…

【大数据实训】python石油大数据可视化(八)

2014到2020年石油加工产品产量数据处理分析 一、任务描述 石油是工业的命脉。 一直到2020年,我国原油产量基本处于平稳的状态,大部分原油来自国外进口;中国原油加工产量在华东、东北地区占比较大,华南地区相对较少。原油的加工…

融云观察:给 ChatGPT 加上声音和脸庞,AI 社交的多模态试验

(👆点击获取行业首款《社交泛娱乐出海作战地图》) 如果将短剧的爆火简单粗暴地归因为剧情上头、狗血反转和精妙卡点,那 GenAI 世界这一年来可以说是一部短剧 Live Show。关注【融云全球互联网通信云】了解更多 这厢 Open AI 宫斗…

2023年全球架构师峰会(ArchSummit北京站2023)-核心PPT资料下载

一、峰会简介 ArchSummit聚焦业界强大的技术成果,秉承“实践第一、案例为主”的原则,展示先进技术在行业中的典型实践,以及技术在企业转型、发展中的推动作用。旨在帮助技术管理者、CTO、架构师做好技术选型、技术团队组建与管理&#xff0c…

Spring Cloud+SpringBoot b2b2c:Java商城实现一件代发设置及多商家直播带货商城 免 费 搭 建

【saas云平台】打造全行业全渠道全场景的saas产品,为经营场景提供一体化解决方案;门店经营区域化、网店经营一体化,本地化、全方位、一站式服务,为多门店提供统一运营解决方案;提供丰富多样的营销玩法覆盖所有经营场景…