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

 

posted @   三只松鼠  阅读(7174)  评论(0编辑  收藏  举报
编辑推荐:
· .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端口占用解决方法
点击右上角即可分享
微信分享提示