Jenkins+SonarQube代码审查(回忆不能抹去,只好慢慢堆积。岁月带你走上牌桌,偏偏赌注是自己。)

Jenkins+SonarQube代码审查 - 安装SonarQube
SonaQube简介
SonarQube是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前  支持java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检   测,底层使用elasticsearch作为代码检索工具。
官网:https://www.sonarqube.org/ 环境要求
软件
服务器
版本
jdk
192.168.153.20
1.8
mysql
192.168.153.20
5.7
SonarQube
192.168.153.20
6.7.4
 
SonarQube        
1)安装MySQL(已完成)abc123 2)安装SonarQube
MySQL创建sonar数据库
 
下载sonar压缩包:
解压sonar,并设置权限
yum install unzip  (已装)
unzip sonarqube-6.7.4.zip 解压
mkdir /opt/sonar 创建目录
mv sonarqube-6.7.4/* /opt/sonar 移动文件
useradd sonar 创建sonar用户,必须sonar用于启动,否则报错
chown -R sonar.  /opt/sonar  更改sonar目录及文件权限修改sonar配置文件
vi /opt/sonarqube-6.7.4/conf/sonar.properties
内容如下:
sonar.jdbc.username=root
sonar.jdbc.password=abc123
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar? useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs= maxPerformance&useSSL=false   (取消注释即可)

 

注意:sonar默认监听9000端口,如果9000端口被占用,需要更改。 启动sonar注意:切换sonar用户
cd /opt/sonar
su sonar ./bin/linux-x86-64/sonar.sh start 启动
su sonar ./bin/linux-x86-64/sonar.sh status 查看状态
su sonar ./bin/linux-x86-64/sonar.sh stop 停止
tail -f logs/sonar.logs
查看日志访sonar http://192.168.153.20:9000
 
默认账户:admin/admin 创建token进log in
ww: 07670ec186e7ebcdfccbec4f7477fdd6792d7110(和Jenkins整合会使用此密钥)
token要记下来!!!
 
Jenkins+SonarQube代码审查- 实现代码审查
安装SonarQube Scanner插件
 

 

 

 

安装SonarQube
添加SonarQube凭证
 
 
 
 
 
Jenkins进行SonarQube配置
Manage Jenkins->Configure System->SonarQube servers

 

 

 
 
 
在项目添加SonaQube代码审查(非流水线项目)
以自由风格为例:打开web_demo_freestyle

 

 

 

 

 

 

直接构建
sonarqube服务器上刷新,查看结果
测试错误代码
新建Javaresource目录
配置pom.xml文件添加对servlet的依赖

 

 

 

新建编写Servlet文件

 

 

 

代码提交

 

 

进行构建测试结果
解决方法:
 

 

再次提交项目
代码检查后,发现问题
发现代码BUG和未使用变量等问题
 
在项目添加SonaQube代码审查(流水线项目)
1) 项目根目录下,创建sonar-project.properties文件
2) 修改Jenkinsfile,加入SonarQube代码审查阶段
pipeline {
    agent any
 
    stages {
        stage('pull code') {
            steps {
                checkout([$class: 'GitSCM', branches: [[name: '*/${branch}']], extensions: [], userRemoteConfigs: [[credentialsId: '1be38991-873b-4a68-8eb6-312347fdc0a4', url: 'git@192.168.195.180:kgc_group/web_demo.git']]])
            }
        }
        stage('code checking') {
            steps {
                script {
                //引入了sonarqube-scanner工具
                scannerHome = tool 'sonar-scanner'
                }
                //引入了sonarqube服务器系统环境
                withSonarQubeEnv('sonarqube') {
                sh "${scannerHome}/bin/sonar-scanner"
                }
            }
        }
        stage('build project') {
            steps {
                sh 'mvn clean package'
            }
        }
        stage('publish project') {
            steps {
                deploy adapters: [tomcat8(credentialsId: 'd8b013fd-7545-43c0-83b3-6dbbf584887c', path: '', url: 'http://192.168.195.182:8080/')], contextPath: null, war: 'target/*.war'
            }
        }
    }
    post {
            always {
               emailext(subject: '构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!',body: '${FILE,path="email.html"}', to: '13951868284@139.com')
            }
    }
}
把更改后的sonar-project.propertiesJenkinsfile进行提交
 

 

 开始构建web_demo_pipeline
查看检测结果
邮件通知也会收到

 

 

 
posted @ 2022-02-18 09:24  十一没有撤退可言!  阅读(115)  评论(0编辑  收藏  举报