gitlab+jenkins+maven+docker持续集成(十一)——sonarqube及sonarscanner代码审查

简介:

Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质 量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、 findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程 进行代码质量管理。

同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。

此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。

一、安装配置sonarqube

下载地址:

https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.5.zip


1)创建数据库

1
2
3
4
5
6
CREATE DATABASE sonarCHARACTER SET utf8COLLATE utf8_general_ci;
  
CREATE USER  'sonar'  IDENTIFIEDBY  'sonar' ;
GRANT ALL ON sonar.*TO  'sonar' @ '%'  IDENTIFIEDBY  'sonar' ;
GRANT ALL ON sonar.*TO  'sonar' @ 'localhost'  IDENTIFIEDBY  'sonar' ;
FLUSHPRIVILEGES;

2)配置sonarqube

解压后进入conf/sonar.properties


1
2
3
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql: //localhost :3306 /sonar ?useUnicode= true &characterEncoding=utf8&rewriteBatchedStatements= true &useConfigs=maxPerformance&useSSL= false

3)配置环境变量

1
2
3
vi  /etc/profile
export  SONAR_HOME= /data/sonar
export  PATH=${SONAR_HOME} /bin :${PATH}

4)启动

1
2
3
cd  bin /linux-x86-64
. /sonar .sh start
. /sonar .sh stop

访问 http://ip:9000 即可


二、安装配置sonar-scanner

1)安装及配置

1
2
3
4
5
6
7
8
9
10
11
12
wget  https: //repo1 .maven.org /maven2/org/sonarsource/scanner/cli/sonar-scanner-cli/3 .0.3.778 /sonar-scanner-cli-3 .0.3.778.zip 
 
解压后进入目录
# more conf/sonar-scanner.properties
#Configure here general information about the environment, such as SonarQube DB details for example
#No information about specific project should appear here
 
#----- Default SonarQube server
sonar.host.url=http: //192 .168.12.109:9000
 
#----- Default source code encoding
sonar.sourceEncoding=UTF-8


2)配置环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#vi /etc/profile
export  SONAR_RUNNER_HOME= /data/sonar-scanner
export  PATH=$SONAR_RUNNER_HOME /bin :$PATH
 
#source /etc/profile
 
确诊生效
# sonar-scanner -h
INFO: 
INFO: usage: sonar-scanner [options]
INFO: 
INFO: Options:
INFO:  -D,--define <arg>     Define property
INFO:  -h,--help             Display help information
INFO:  - v ,--version          Display version information
INFO:  -X,--debug            Produce execution debug output


三、jenkins集成sonar-scanner

1)配置sonar

jenkins 安装 SonarQube Scanner for Jenkins

安装后进入填写sonar信息,新版本是用token进入认证的

用admin进入sonar 用户-->安全, 生成token

wKioL1nIfWPApwMTAADL24de5N0830.png-wh_50



2)sonar scaner环境变量配置

wKiom1nIfiSz-W6-AAB5eHbqNn8626.png-wh_50


配置完以下,我们进入项目中集成

wKiom1nIfp_B27mwAABM5r8n0Vc401.png-wh_50

一下步要注意下,我们选择在构建前,还是构建后进行代码扫描,我这里项目是maven编译后再做代码扫描,所以是构建后,这里要注意下

Post Steps

wKioL1nIftzxo0sDAABZtfv7TjQ366.png-wh_50

1
2
3
4
5
6
sonar.projectKey=platform-batch_dev
sonar.projectName=platform-batch_dev
sonar.projectVersion=1.0 
sonar.language=java
sonar.sources=src /main/java
sonar.java.binaries=target /classes


以上配置完后就可以了, 点项目构建,就会调用sonarscannere脚本,scanner脚本再调用sonar写入到数据库中,构建完成后,我们就会在sonar里看到代码报告了。


wKioL1nIf6axTABhAAC8u37cIgU892.png-wh_50


本文转自 jackjiaxiong 51CTO博客,原文链接:http://blog.51cto.com/xiangcun168/1968394



相关文章
|
11月前
|
存储 Kubernetes 监控
Docker与Kubernetes集成挑战及方案
面对这些挑战,并不存在一键解决方案。如同搭建灌溉系统需要考虑多种因素,集成Docker与Kubernetes也需要深思熟虑的规划、相当的技术知识和不断的调试。只有这样,才能建立起一个稳定、健康、高效的Docker-Kubernetes生态,让你的应用像花园中的植物一样繁荣生长。
418 63
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
503 2
|
监控 jenkins Shell
jenkins结合gitlab实现CI(持续集成)
通过本文的介绍,我们详细了解了如何结合Jenkins和GitLab实现持续集成。从环境准备、插件配置到Pipeline任务创建和CI流程监控,每一步都提供了详细的操作步骤和示例代码。希望本文能帮助开发者快速搭建起高效的CI系统,提高项目开发效率和代码质量。
1529 9
|
监控 jenkins Linux
从 Jenkins 持续集成出发:探究如何监控员工电脑屏幕
Jenkins 在企业信息化管理中用于自动化构建、测试和部署,提高开发效率。本文讨论了其重要性,并从技术角度探讨了屏幕监控的可能性,但明确反对非法监控,强调应合法合规地管理企业和尊重员工隐私。
325 12
|
存储 测试技术 持续交付
Docker与CI/CD的集成策略及其对软件开发效率和质量的提升作用
本文探讨了Docker与CI/CD的集成策略及其对软件开发效率和质量的提升作用。首先介绍了CI/CD的基本概念,接着阐述了Docker在环境一致性、快速部署、资源隔离和轻量化方面的优势。文章还详细讨论了构建、测试和部署阶段的具体集成方法,以及集成后带来的效率提升、可靠性增强、加速交付和易于管理等好处。最后,通过案例分析展示了集成的实际效果,强调了Docker与CI/CD结合的重要性和未来前景。
336 2
|
运维 jenkins Java
Jenkins在持续集成与持续部署中的价值
Jenkins在持续集成与持续部署中的价值
|
jenkins Devops 测试技术
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第26天】随着DevOps理念的普及,Jenkins作为一款开源自动化服务器,在持续集成(CI)与持续部署(CD)中发挥重要作用。本文通过某中型互联网企业的实际案例,展示了Jenkins如何通过自动化构建、持续集成和持续部署,显著提升开发效率、代码质量和软件交付速度,帮助企业解决传统手工操作带来的低效和错误问题。
622 4
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
504 0
|
持续交付 jenkins Devops
WPF与DevOps的完美邂逅:从Jenkins配置到自动化部署,全流程解析持续集成与持续交付的最佳实践
【8月更文挑战第31天】WPF与DevOps的结合开启了软件生命周期管理的新篇章。通过Jenkins等CI/CD工具,实现从代码提交到自动构建、测试及部署的全流程自动化。本文详细介绍了如何配置Jenkins来管理WPF项目的构建任务,确保每次代码提交都能触发自动化流程,提升开发效率和代码质量。这一方法不仅简化了开发流程,还加强了团队协作,是WPF开发者拥抱DevOps文化的理想指南。
383 1
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
1008 0