使用Sonar集成Jenkins进行代码静态检查
来源:互联网 发布:.shop域名上线时间 编辑:程序博客网 时间:2024/05/12 22:18
Sonar简介
Sonar是一个用于代码质量管理的开源平台, 用于管理源代码质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。
Sonar在Jenkins里的安装以及配置
使用Jenkins做CI/CD, 把Sonar集成到Jenkins就可以实现自动触发代码质量检查。
- 安装Sonar Server端
- 创建数据库
MySQL docker-compose文件如下:
- 创建数据库
# cat docker-compose.yml version: '2' services: mysql: image: mysql environment: - MYSQL_ROOT_PASSWORD=sonar ports: - "33306:3306" restart: always
创建sonar数据库以及用户语句
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 'sonar' IDENTIFIED BY 'sonar'; GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar'; GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar'; FLUSH PRIVILEGES;
安装sonar服务器端
sonar docker-compose文件如下:
version: '2' services: sonar: image: sonarqube ports: - "9000:9000" - "9092:9092" environment: - SONARQUBE_JDBC_USERNAME=sonar - SONARQUBE_JDBC_PASSWORD=sonar - SONARQUBE_JDBC_URL=jdbc:mysql://xxx:33306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true - SONARQUBE_JDBC_DRIVERCLASSNAME=com.mysql.jdbc.Driver volumes: - /etc/localtime:/etc/localtime restart: always
使用命令docker-compose up -d启动,sonar服务器端就可以启动成功了,通过url http://IP:9000 就可以访问sonar服务器端。
- sonar集成到Jenkins
- 在Jenkins上安装sonar插件
- 系统配置 -> 配置sonar服务器地址
- 配置需要添加sonar静态检查的Jenkins Job
1) 构建环境时点选 “Prepare SonarQube Scanner environment”
2) 在构建后添加 “Execute SonarQube Scanner”
并在Analysis properties中添加如下配置:
sonar.projectKey= xxx sonar.projectName= xxx sonar.projectVersion=1.0.0 sonar.sources=app/ sonar.sourceEncoding=UTF-8
如果分成多个module
sonar.projectKey= xxx sonar.projectName= xxx sonar.projectVersion=1.0.4 sonar.sources=. sonar.sourceEncoding=UTF-8 sonar.modules=module1,module2,module3 module1.sonar.projectBaseDir=module1/ module2.sonar.projectBaseDir=module2/ module3.sonar.projectBaseDir=module3/
如果要配置sonar支持java lombok 在mvn 编译选项里添加 “dependency:copy-dependencies” 然后设置sonar.java.binaries 以及sonar.java.libraries
sonar.projectKey= xxx sonar.projectName= xxx sonar.projectVersion=1.0.4 sonar.sources=. sonar.sourceEncoding=UTF-8 sonar.java.binaries=target/classes sonar.java.libraries=target/dependency/*.jar sonar.modules=module1,module2,module3 module1.sonar.projectBaseDir=module1/ module2.sonar.projectBaseDir=module2/ module3.sonar.projectBaseDir=module3/
0 0
- 使用Sonar集成Jenkins进行代码静态检查
- Jenkins 添加sonar对代码静态检查
- 使用 Jenkins 与 Sonar 集成对代码进行持续检测
- Sonar 集成Jenkins进行代码审查
- Jenkins+Gitlab+Sonar代码检查平台搭建-Sonar
- gitlab + jenkins + sonar java代码持续集成
- Jenkins+Gitlab+Sonar代码检查平台搭建-Jenkins
- maven+sonar+mysql静态代码检查
- sonar集成jenkins管理
- Jenkins 集成 Sonar
- Jenkins和Sonar集成
- Jenkins的部署及使用教程(插件集成sonar服务,构建过程做代码分析)
- Jenkins的部署及使用教程(插件集成sonar服务,构建过程做代码分析)
- Jenkins+Gitlab+Sonar代码检查平台搭建-Gitlab
- Jenkins+Gitlab+Sonar代码检查平台搭建-Maven
- Jenkins+Gitlab+Sonar代码检查平台搭建-Pom.xml
- Jenkins+Gitlab+Sonar代码检查平台搭建-java_maven项目
- 使用 Sonar 进行代码质量管理
- Chromium for Ubuntu 安装Flash插件
- 在Linux下安装MyEclipse2017 CI4
- 中超赛程分析(3)--全运会期间
- 程序流程的控制之循环(Delphi)
- 476. Number Complement(C语言)
- 使用Sonar集成Jenkins进行代码静态检查
- 程序流程的控制之条件分支(Delphi)
- 基于Android ServerSocket的简易聊天室功能
- jsp语言基础(4)
- 为什么用快慢指针找链表的环,快指针和慢指针一定会相遇?
- Java Comparable Comparator 接口的使用感悟
- 储存图片刷新图库,使图片在图库第一个
- python 3 爬虫防坑手册——常更
- npm和bower的区别