jenkins+sonar 持续集成检测代码质量
一、jenkins-->Manage Plugins:安装插件 SonarQube Scanner for Jenkins
二、jenkins-->Configure System:配置 SonarQube servers
1)先在 sonarQube 平台创建 token,用来配置 jenkins 登录 sonarQube
2)然后在 jenkins 的 Configure System 配置 Name、Server URL、Server authentication token
3)添加 token
三、jenkins-->Global Tool Configuration:配置 SonarQube Scanner
四、新建一个 project
五、配置 git
六、注意在如下选项前打钩
七、以 java 为例,构建添加两个构建步骤:Invoke top-level Maven targets 和 Execute SonarQube Scanner
若没有 Invoke top-level Maven targets 的,需要先在 Manage Plugins 中安装此插件
这段配置很重要
Analysis properties:
sonar.projectKey=hr-server # SonarQube中项目的唯一标识符。只要它是唯一的 sonar.projectName=hr-server # SonarQube中项目显示的名称 sonar.version=1.0 # 版本号 sonar.sources=core/src # 源码目录 sonar.java.binaries=core/target/classes # 编译后的文件目录 # sonar.exclusions=**/*.xml,**/*.html 排除不需要检测的文件,如:xml、html sonar.language=java # 编程语言 sonar.sourceEncoding=UTF-8 sonar.scm.disabled=true
八、构建完成之后,jenkins页面可以直接链接到 SonarQube
总结
不同语言 Analysis properties 配置略有不同。以 java 和 python 为例,不同点:java 需指定编译后的文件目录(安装maven插件),而 python 只需指定源码目录即可。
Java:
Analysis properties:
- sonar.projectKey=hr-server # SonarQube中项目的唯一标识符。只要它是唯一的
- sonar.projectName=hr-server # SonarQube中项目显示的名称
- sonar.version=1.0 # 版本号
- sonar.sources=core/src # 源码目录
- sonar.java.binaries=core/target/classes # 编译后的文件目录
- sonar.exclusions=**/*.xml,html # 排除不需要检测的文件,如:xml、html
- sonar.language=java # 编程语言
- sonar.sourceEncoding=UTF-8
- sonar.scm.disabled=true
Python:
Analysis properties:
- sonar.projectKey=AutomationApiTest # SonarQube中项目的唯一标识符。只要它是唯一的
- sonar.projectName=AutomationApiTest # SonarQube中项目显示的名称
- sonar.projectVersion=1.0 # 版本号
- sonar.sources=. # 源码目录
- sonar.language=py # 编程语言
- sonar.sourceEncoding=UTF-8
- sonar.scm.disabled=true