错误1:有个pom文件内容错了,但是在jenkins上面编译的时候,控制台将这个错误信息给打出来了,maven的编译也打印了failed with error,但是jenkins的job并没有因此而停止,而是继续指后面的sonar分析去了,设置了sonar 的Skip analysis on build failure,以及设置post step的Run only if build succeeds,也都无果

[ERROR] BUILD ERROR
[INFO] Failed to configure plugin parameters for: org.apache.maven.plugins:maven-dependency-plugin:2.0
Cause: Error loading class 'org.apache.maven.plugin.dependency.fromConfiguration.Dependency'

  

后来排查下来,怀疑是maven的缺陷导致的jenkins没有收到错误码来中断执行导致,遂升级maven到3.0.5,然后执行build,job中断了执行,目的达到,抛出的错误如下,该步的问题,基本解决

cause : Unable to parse configuration of mojo org.apache.maven.plugins:maven-dependency-plugin:2.1:copy: Error loading class 'org.apache.maven.plugin.dependency.fromConfiguration.Dependency'
Stack trace :
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.1:copy (copy-libs) on project cifin-assembly-ace: Unable to parse configuration of mojo org.apache.maven.plugins:maven-dependency-plugin:2.1:copy: Error loading class 'org.apache.maven.plugin.dependency.fromConfiguration.Dependency'
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:221)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)

问题2:jenkins执行job的build时,使用的是maven3.0.5,sonar配置时,sonar-maven-plugin配置的是1.0-beta2,导致报错:

[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:1.0-beta-2:sonar (default-cli) on project cifin-parent: Can not execute Sonar: UnsupportedOperationException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:1.0-beta-2:sonar (default-cli) on project cifin-parent: Can not execute Sonar
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)

  

这个错误是由于sonar-maven-plugin导致的,可以参考以下文档

http://sonar.15.x6.nabble.com/sonar-maven-plugin-causes-UnsupportedOperationException-td5002455.html

修改jenkins config中的soanr配置中的sonar-maven-plugin version: 设置成2.0 (应该是2.0以后才支持maven 3.0.5)

问题3:升级了sonar-maven-plugin的versio到2.0, 或者不指定(不指定时,默认是最高version应该是),之前用maven 2.2.1编译的job,又出新状况了

[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] PicoLifecycleException: method 'public void org.sonar.jpa.session.AbstractDatabaseConnector.start()', instance 'org.sonar.jpa.session.DriverDatabaseConnector@1304e60, java.lang.RuntimeException: wrapper
Database schema must be updated [version/required=241/191]. Please browse to your sonar homepage.
[INFO] ------------------------------------------------------------------------
[INFO] Trace

  这又是个蛋疼的问题,解决办法只好是把sonar的配置再复制一份出来,maven2.2.1编译的,暂时用soanr-maven-plugin version=1.0的sonar来执行sonar分析,maven3.0.5的来用sonar-maven-plugin version=2.0来执行sonar分析

为什么不能一下升级到maven3.0.5,因为有些蛋疼的系统的pom写的不规范,maven3对pom的校验又比maven2严格,有些maven2下面编译没啥问题的系统,用maven3就编译不过了,除非推动他们去修改到那些不规范的pom

jenkins和sonar的几个问题的更多相关文章

  1. Jenkins+Gradle+Sonar进行Java项目代码分析

    Jenkins+Maven+Sonar与Jenkins+Gradle+Sonar配置方法很相似,区别就是Java项目所用的编译工具不同,一个是maven,一个是gradle 使用maven编译工具的可 ...

  2. jenkins集成sonar

    用于我的sonar已经在一台机器上搭建好了,但是每次都要人工去执行sonar-run,很麻烦,所以就想着集成到jenkins上,在jenkins上点点按钮就可以看sonar结果,所以很抱歉,本博客不设 ...

  3. Jenkins 集成 Sonar

    Jenkins 与 Sonar 集成:Sonar 是 Jenkins 之外独立运行的一个服务.Jenkins 中安装插件 SonarQube(并配置其 Sonar Server 的 URL / Acc ...

  4. Jenkins之Sonar 代码检查

    一.简介 SonarQube 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具.与持续集成工具(例如 Hudson/Jenkins 等 ...

  5. Jenkins集成Sonar Quabe和权限配置

    目录 安装Sonar Jenkins配置sonar Maven Jenkins Job配置 Pipeline Jenkins Job配置 Sonar权限管理 Sonar quality Gate通过阈 ...

  6. jenkins集成sonar代码审核工具

    在项目测试管理过程中,项目上线很多时候时间仓促,导致代码质量不高,测试时间不充分会导致线上出现各种各样的问题,这个时候一方面是增加测试的质量把控,还要从根本上解决开发小哥的代码质量问题.而Sonar这 ...

  7. DEVOPS技术实践_11:Jenkins集成Sonar

    前言 前面已经有介绍sonar的安装,简单应用,下面在简答的研究一下sonar和jenkins集成的简单使用,对于sonar的安装不做介绍 一 sonar的简单介绍 持续检查避免了低质量的代码,比如S ...

  8. webhook触发jenkins进行sonar检测

    目的 jenkins仅需创建一个job,git推送后自动进行sonar代码检测并上传到sonarqube jenkins插件 已按社区推荐安装基本插件 Generic Webhook Trigger ...

  9. Jenkins+Maven+Sonar系统持续集成环境部署以及配置

    一.Jenkins介绍以及安装 什么是持续集成?   随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Ag ...

  10. jenkins+gitlab+sonar+testng构建持续集成测试环境(配置干货篇)

    几个工具的安装部分就不在此介绍了! jenkins配置: 1.插件安装 2.root私钥配置 3.构建job配置 4.部署job配置 5.测试job配置 7.jenkins全局工具配置 8.jenki ...

随机推荐

  1. java中使用阻塞队列实现生产这与消费这之间的关系

    需求如下: 有一个生产者和一个消费者,生产者不断的生产产品,消费这不断的消费产品.产品总数为N. 1.生产顺序按队列的方式,先进先出. 2.生产者和消费这可以同时进行. 3.当生产者生产了N个产品后不 ...

  2. ASP.NET Core中如果Response.HasStarted已经为true,就不能更改Response.Cookies和Response.Headers等属性的值了

    最近我在ASP.NET Core中做了一个中间件CustomizedMiddleware,要说该中间件的功能也很简单,其实就是往HttpResponse中添加一个Cookie而已,但是我将添加Cook ...

  3. 【LeetCode191】Number of 1 Bits★

    1.题目 2.思路 方法一:常规方法. 方法二:给面试官惊喜的解法. 3.java代码 方法一代码: public class Solution { // you need to treat n as ...

  4. HihoCoder1192 简单的树嵌入 dfs、构造

    题目传送门:http://hihocoder.com/problemset/problem/1192 大意:给出一棵$N$个点的树,边权为$1$,要求给每个点构造$M$个权值$v_1...v_M$,使 ...

  5. angularjs的ng-change事件演示

    今天练习angularjs的ng-change事件. 比如用户作出选择时,系统所指定的选项中,没有用户合适的选项.此时我们可以让用户填写. 刚开始文本框是隐藏的.当用户选择了checkbox之后才会显 ...

  6. KMeans算法分析以及实现

    KMeans KMeans是一种无监督学习聚类方法, 目的是发现数据中数据对象之间的关系,将数据进行分组,组内的相似性越大,组间的差别越大,则聚类效果越好. 无监督学习,也就是没有对应的标签,只有数据 ...

  7. Part 5:Django测试--Django从入门到精通系列教程

    该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. 本节将简要介绍Django的自动化测试相关内 ...

  8. Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理

    通过我们会用Nginx的upstream做基于http/https端口的7层负载均衡,由于Nginx老版本不支持tcp协议,所以基于tcp/udp端口的四层负载均衡一般用LVS或Haproxy来做.至 ...

  9. Docker网络解决方案 - Weave部署记录

    前面说到了Flannel的部署,今天这里说下Docker跨主机容器间网络通信的另一个工具Weave的使用.当容器分布在多个不同的主机上时,这些容器之间的相互通信变得复杂起来.容器在不同主机之间都使用的 ...

  10. 数组-在Shell脚本中的基本使用介绍

    Shell脚本在运维工作中是极其重要的,而数组在shell脚本里的运用无论是在循环或运算方面都是非常实用的一个环节.下面是对shell脚本中数组方面一些操作在此进行记录,希望能帮助到有兴趣的朋友~1. ...