SonarQube集成Jenkins自动化检查代码

简介: SonarQube集成Jenkins自动化检查代码

环境准备:sonar,jenkins;这两个的安装就不多说了,查找我以前的文章也找得到。

1. 新建一个自由风格的项目

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

2. 源码选择无(此处为演示,项目也在我本地,因此选择无)

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

3. 构建->Execute SonarQube Scanner;然后填写项目key,名称,以及要分析的项目路径,项目主要语言等一系列信息(具体情况具体填写)

sonar.projectKey=django_restful

sonar.projectName=django_restful

sonar.language=py

sonar.sources=$WORKSPACE

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

4. 保存,点击立即构建(此处我只是为了扫描代码,因此并未执行其他的部署等一系列命令)

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

5. 在SonarQube查看结果

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

6. 注意事项:

1. sonar.sources

分析:这个关键词的意思是要分析的项目所在路径,最初我的项目是放在/project下的,于是我的sonar.sources=/project;可是在构建后发现sonar并未拉取到代码,没有任何分析结果

原因:后来经过一系列的排查与查找资料得知,jenkins构建运行时会去自己默认的工作空间找代码,也就是说不管是git或者svn其实拉取的代码是放在默认的工作空间,再将这些代码部署到响应的服务器或者做相应的操作;那么如果你是本地的项目,这个项目也要在工作空间,jenkins才找得到。每新建一个项目就会在工作空间有一个文件夹(比如项目名称是:django_restful;那么在这个项目的工作空间就是:/root/.jenkins/workspace/django_restful)

解决方案:所以这里的sonar.sources是相对于工作空间的目录(sonar.sources=$WORKSPACE),将项目移到/root/.jenkins/workspace/django_restful下就可以

2.SCM开启

构建时在控制台看到有报错,未开启SCM

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

解决方案:在sonar开启SCM

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

3. 系统配置和全局工具配置

下载了SonarQube插件后,要在系统配置中配置SonarQube servers,不然jenkins怎么知道要往哪里发送报告

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

SonarQube其实是用SonarQube Scanner来扫描代码的,因此也必须配置SonarQube Scanner的位置

  1. 可以提前自己安装好scanner,全局工具配置->SonarQube Scanner,填写执行路径(这种方式不勾选‘自动安装’)

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

2. 自动安装,全局工具配置->SonarQube Scanner,勾选自动安装,选择想要下载的扫描器版本

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

 

相关文章
|
4天前
|
前端开发 C++ Windows
C++生成QML代码与QML里面集成QWidget
这篇文章介绍了如何在C++中生成QML代码,以及如何在QML中集成QWidget,包括使用Qt Widgets嵌入到QML界面中的技术示例。
|
2月前
|
持续交付 jenkins Devops
WPF与DevOps的完美邂逅:从Jenkins配置到自动化部署,全流程解析持续集成与持续交付的最佳实践
【8月更文挑战第31天】WPF与DevOps的结合开启了软件生命周期管理的新篇章。通过Jenkins等CI/CD工具,实现从代码提交到自动构建、测试及部署的全流程自动化。本文详细介绍了如何配置Jenkins来管理WPF项目的构建任务,确保每次代码提交都能触发自动化流程,提升开发效率和代码质量。这一方法不仅简化了开发流程,还加强了团队协作,是WPF开发者拥抱DevOps文化的理想指南。
49 1
|
1月前
|
jenkins 持续交付 网络安全
利用 Jenkins 实现持续集成与持续部署-代码拉取终端的配置
安装Git、配置用户信息、生成SSH密钥以及在Gitee上创建项目仓库等。
53 0
|
2月前
|
持续交付 jenkins C#
“WPF与DevOps深度融合:从Jenkins配置到自动化部署全流程解析,助你实现持续集成与持续交付的无缝衔接”
【8月更文挑战第31天】本文详细介绍如何在Windows Presentation Foundation(WPF)项目中应用DevOps实践,实现自动化部署与持续集成。通过具体代码示例和步骤指导,介绍选择Jenkins作为CI/CD工具,结合Git进行源码管理,配置构建任务、触发器、环境、构建步骤、测试及部署等环节,显著提升开发效率和代码质量。
47 0
|
2月前
|
C# Windows 开发者
当WPF遇见OpenGL:一场关于如何在Windows Presentation Foundation中融入高性能跨平台图形处理技术的精彩碰撞——详解集成步骤与实战代码示例
【8月更文挑战第31天】本文详细介绍了如何在Windows Presentation Foundation (WPF) 中集成OpenGL,以实现高性能的跨平台图形处理。通过具体示例代码,展示了使用SharpGL库在WPF应用中创建并渲染OpenGL图形的过程,包括开发环境搭建、OpenGL渲染窗口创建及控件集成等关键步骤,帮助开发者更好地理解和应用OpenGL技术。
95 0
|
2月前
|
开发者 C# UED
WPF与多媒体:解锁音频视频播放新姿势——从界面设计到代码实践,全方位教你如何在WPF应用中集成流畅的多媒体功能
【8月更文挑战第31天】本文以随笔形式介绍了如何在WPF应用中集成音频和视频播放功能。通过使用MediaElement控件,开发者能轻松创建多媒体应用程序。文章详细展示了从创建WPF项目到设计UI及实现媒体控制逻辑的过程,并提供了完整的示例代码。此外,还介绍了如何添加进度条等额外功能以增强用户体验。希望本文能为WPF开发者提供实用的技术指导与灵感。
72 0
|
2月前
|
存储 开发者 C#
WPF与邮件发送:教你如何在Windows Presentation Foundation应用中无缝集成电子邮件功能——从界面设计到代码实现,全面解析邮件发送的每一个细节密武器!
【8月更文挑战第31天】本文探讨了如何在Windows Presentation Foundation(WPF)应用中集成电子邮件发送功能,详细介绍了从创建WPF项目到设计用户界面的全过程,并通过具体示例代码展示了如何使用`System.Net.Mail`命名空间中的`SmtpClient`和`MailMessage`类来实现邮件发送逻辑。文章还强调了安全性和错误处理的重要性,提供了实用的异常捕获代码片段,旨在帮助WPF开发者更好地掌握邮件发送技术,提升应用程序的功能性与用户体验。
34 0
|
2月前
|
C# 开发者 Windows
WPF遇上Office:一场关于Word与Excel自动化操作的技术盛宴,从环境搭建到代码实战,看WPF如何玩转文档处理的那些事儿
【8月更文挑战第31天】Windows Presentation Foundation (WPF) 是 .NET Framework 的重要组件,以其强大的图形界面和灵活的数据绑定功能著称。本文通过具体示例代码,介绍如何在 WPF 应用中实现 Word 和 Excel 文档的自动化操作,包括文档的读取、编辑和保存等。首先创建 WPF 项目并设计用户界面,然后在 `MainWindow.xaml.cs` 中编写逻辑代码,利用 `Microsoft.Office.Interop` 命名空间实现 Office 文档的自动化处理。文章还提供了注意事项,帮助开发者避免常见问题。
114 0
|
2月前
|
Kubernetes jenkins 持续交付
Jenkins 与 Kubernetes 的集成:实现高效的资源管理和自动化部署
【8月更文第31天】随着微服务架构的普及,Kubernetes 已经成为了容器编排的事实标准。Kubernetes 提供了一种强大的方式来管理容器化的应用程序,而 Jenkins 则是持续集成与持续部署(CI/CD)领域的一个重要工具。将 Jenkins 与 Kubernetes 集成,不仅可以充分利用 Kubernetes 的资源管理能力,还能通过 Jenkins 实现自动化构建、测试和部署,从而提高开发效率和部署速度。本文将详细介绍如何将 Jenkins 集成到 Kubernetes 环境中,并提供具体的代码示例。
93 0
|
2月前
|
jenkins 持续交付 开发工具
Jenkins 与 Docker 集成的最佳实践
【8月更文第31天】随着容器技术的兴起,越来越多的团队开始采用 Docker 来构建和部署应用。Docker 提供了一种轻量级的虚拟化方法,使得应用可以在任何地方以相同的方式运行,这极大地提高了开发效率和部署的一致性。与此同时,Jenkins 作为一种广泛使用的持续集成/持续交付(CI/CD)工具,可以帮助团队自动化构建、测试和部署流程。本文将探讨如何将 Docker 与 Jenkins 集成,以简化开发环境的搭建和维护。
159 0

热门文章

最新文章

下一篇
无影云桌面