Jenkins与sonar扫描的集成问题
记录本周遇到的头疼了很久的一个问题,由于公司需要使用jenkins来自动管理构建项目,然后在关联sonar对项目代码质量进行审核。
接着坑爹的问题来了,原有的技术手段为项目构建成功后通过jenkins的构建后操作去触发提前配置好的sonar服务器对代码质量进行管理,然而处于技术层面以及每次项目构建时间上的考虑,现在需要对原有技术进行替换更新,决定使用在构建中去触发sonar。具体build执行命令如下:
clean cobertura:cobertura -Dcobertura.report.format=xml -Dmaven.test.skip=false -Dmaven.test.failure.ignore=true org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar -X
目前我们使用的jenkins服务器为远程服务器,同样sonar也为远程服务器。前提(项目本地单元测试没有问题,构建没有问题)。
在实际jenkins构建中出现以下问题:
1. 找不到相关依赖的问题。
此问题出的有一些莫名其妙,总体而言为根据maven配置在我们的本地仓库其实是存在相关依赖的,而且maven的setting文件中也配置了本地仓库地址。
具体解决方式就更奇葩:为将相关依赖关系在本地仓库移除,并根据包结构重新配置一遍就可以了。
2.找不到相关工程项目
我们的项目为多模块项目,在构建的时候根据输出日志可以查看到相关的每个模块的构建均为success,然而在最终整体项目构建的时候报错,根据记录日志提示为找不到相关工程项目。然后我们在到日志地址查看发现项目其实也是存在的。
具体解决方式:这个问题我们尝试过很多方式,包括更改包结构,统一Git仓库源码地址,单独整合单一模块测试。。等等。。然而均已失败告终。。最后根据build指令去推敲发现是因为build指令并不支持当前配置的soanr版本。。。。所以。。经过利弊权衡,最终我们选择了更换sonar服务器的版本。
最后说一下我们为什么会选择更改sonar版本,而非更改build命令。
因为我们整个工程下面涉及到19个模块服务,在未做出调整之前我们构建整个项目,并得到最终扫描结果所需要花费的时间大概是4个小时以上。也就是说如果在代码中存在必须要更改的质量问题,改一次然后在测试的成本太高。而通过后面一种方式构建到处sonar结果所需要的时间仅仅10多分钟,可以大幅提升效率。所以还是推荐使用后者。
Jenkins与sonar扫描的集成问题的更多相关文章
- Jenkins+Maven+Sonar系统持续集成环境部署以及配置
一.Jenkins介绍以及安装 什么是持续集成? 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Ag ...
- gitlib配置push后自动触发jenkins构建sonar扫描
jenkins所用到的插件: Gitlab Hook Plugin 配置步骤 1.先进入gitlab的个人设置,生成api token 2.复制生成的访问令牌,打开jenkins的凭据,添加选择类型是 ...
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)
前言 上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...
- Jenkins+maven+git+sonar 系统持续集成&代码单測管理
Jenkins+maven+git+sonar 系统持续集成&代码单測管理 Jenkins的安装 Jenkins是基于Java开发的一种持续集成工具,用于监控持续反复的工作.功能包含: 1.持 ...
- Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)
上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以 ...
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A和B都习 ...
- Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一) 2015-01-14 20:28 by 飘扬的红领巾, 4322 阅读, 5 评论, 收藏, 编辑 ...
- Jenkins 使用 SonarQube 扫描 Coding
Jenkins 使用 SonarQube 扫描 Coding 系统环境: Jenkins 版本:2.176 SonarQube 版本:7.4.0 一.SonarQube 介绍 1.SonarQub ...
- 使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】
背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包.而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品.运营.测试等人 ...
随机推荐
- 关于火狐和IE下href="javascript:void(0)"兼容性的问题
今天在开发中发现,使用如下方式的链接.在Chrome中点击后行为符合预期,但在IE下会新开标签卡(根据参考资料,Firefox中有相同问题). 经过排查,发现是href="javascrip ...
- 纯CSS修改checkbox复选框样式
借鉴网友博客, 改用后整理收录 效果图: 移入: <!DOCTYPE html> <html> <head> <meta charset="UTF- ...
- ArcGIS for JavaScript学习(一)
一 API准备 从网上下载开发包:ArcGIS for JavaScript(百度网盘地址) sdk中含有API的帮助和例子 2.离线部署(以IIS为例) 配置IIS(详见网络):解压离线包,包中的 ...
- iOS---------- Safe Area Layout Guide before iOS 9.0
如果你们的项目不做iOS9以下支持就打开main.storyboard 去除Use safe Area Layout 如果不考虑iOS9以下支持就按照下面的步骤 选中控制器,右边面板的Build ...
- java基础中this,super
this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类. this的用法就不累赘的说 ...
- NFS 安装与配置
NFS通常用于网络中的多台计算机实现共享存储. 由于测试环境没有购买阿里云的NFS,所以自己搭建一个NFS文件系统,实现一些比如上传图片,静态资源等同享功能. 下面的测试是在CentOS releas ...
- nginx 防止盗链
1.测试盗链(www.html2.com 盗取 www.html5.com的图片) 2.防止盗链 符合盗链 —— 重写 说明:if ($invalid_referer) {,if的后面是有空格的,如果 ...
- ASP.NET Zero--解决方案结构(层)
解决方案结构(层) 创建和下载项目后,您将具有如下所示的解决方案结构: 解决方案有8个项目: Core项目包含域层类(如 实体 和 域服务). Application项目包含应用程序逻辑(如应用程序服 ...
- iOS MVVM架构总结
为什么使用MVVM iOS中,我们使用的大部分都是MVC架构.虽然MVC的层次明确,但是由于功能日益的增加.代码的维护,使得更多的代码被写在了Controller中,这样Controller就显得非常 ...
- Linux Collection:网络配置
PAS 缺少ifconfig 安装相应软件[不推荐],尽量使用 ip 命令 sudo apt install gnome-nettool 补充,显示IP地址: ip show address PAS ...