注意: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服务器上刷新,查看结果 测试错误代码 新建Java和resource目录 配置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.properties和Jenkinsfile进行提交
开始构建web_demo_pipeline 查看检测结果 邮件通知也会收到