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
分类:
sonar
标签:
jenkins+sonar
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
2017-10-09 Apache 443端口占用解决方法