这篇主要涉及jenkins和sonarqube的集成
sonarqube的配置感觉简直到处是坑,所以写一篇博客记录一下,以免以后经常忘记
前提:已经安装了mysql5.6+,mariadb也不行

安装sonarqube

参考
创建数据库及修改配置文件

安装插件

jenkins上安装sonarqube plugin ,如果没有就安装sonarqube scanner for jenkins这个插件。

安装sonarqube Scanner

参考https://www.jianshu.com/p/1e59cd5cddb5 安装Scanner

配置

  1. 在 系统管理->Global Tool Configuration 中配置/安装最新的SonarQube Scanner:
  2. 配置SonarQube服务
    SonarQube Scanner工具需要把扫描的代码及结果发送到SonarQube服务器上,所以需要配置SonarQube服务地址。

在 系统管理->系统设置 中增加 SonarQube servers 相关配置:

jenkins和sonar_JVM

可以参考https://www.jianshu.com/p/1e59cd5cddb5

获得Server authentication token

关联项目 使用

首先需要在新建的 Jenkins 项目的构建环境标签页中勾选"Prepare SonarQube Scanner evironment"

jenkins和sonar_sonarqube_02


然后采取构建后分析源码

jenkins和sonar_sonarqube_03


配置 SonarQube Scanner 构建步骤,在 Task to run 输入框中输入 scan,即分析代码;在 JDK 选择框中选择 SonarQube Scanner 使用的 JDK(注意这里必须是 JDK 不能是 JRE);Path to project properties 是可选择的输入框,这里可以指定一个 sonar-project.properties 文件,如果不指定的话会使用项目默认的 properties 文件;Analysis properties 输入框,这里需要输入一些配置参数用来传递给 SonarQube,这里的参数优先级高于 sonar-project.properties 文件里面的参数,所以可以在这里来配置所有的参数以替代 sonar-project.properties 文件,下面列出了一些参数,sonar.language 指定了要分析的开发语言(特定的开发语言对应了特定的规则),sonar.sources 定义了需要分析的源代码位置(示例中的$WORKSPACE 所指示的是当前 Jenkins 项目的目录),sonar.java.binaries 定义了需要分析代码的编译后 class 文件位置;Additional arguments 输入框中可以输入一些附加的参数,示例中的-X 意思是进入 SonarQube Scanner 的 Debug 模式,这样会输出更多的日志信息;JVM Options 可以输入在执行 SonarQube Scanner 是需要的 JVM 参数。

Analysis properties 填写配置

sonar.projectKey=apigateway
sonar.projectName=apigateway #这个可自定义,报告发送到sonarqube后,sonarqube将创建以此命名的project
sonar.language=java #表示分析java源代码
sonar.java.source=1.8 #表示jdk版本为1.8
sonar.sources=${WORKSPACE}/src/ #表示源代码的目录
sonar.java.binaries=${WORKSPACE}/target/classes/ #定义了需要分析代码的编译后 class 文件位置;

sonar.sources 和 sonar.java.binaries 需要根据你的实际位置进行配置

查看分析结果

构建jenkins job后,分析结果将发送到sonarqube。

问题

安装好sonarqube后启动之后并不能访问到9000端口,说明有问题,可以查看/logs下的es.log,sonar.log,web.log
下面是我遇到过的log里面报的错

  1. sonar es can not run elasticsearch as root
    错误原因:因为安全问题elasticsearch 不让用root用户直接运行
    解决方法:liunx创建新用户sonarUser,使用该用户(sonarUser)运行sonar即可。
    参考:http://www.voidcn.com/article/p-qxgxhrtd-brv.html
  2. sonar Unable to start JVM: No such file or directory/Unable to start JVM: Permission denied (13)
    错误原因:JVM参数没有配置
    处理方案:
    /bin/wrapper.conf 下增加:
    wrapper.java.command=/usr/java/jdk1.8.0_72/bin/java
    参考:https://blog.csdn.net/maweiba163/article/details/52004552https://blog.csdn.net/jxzdezhanhao/article/details/54376379
  3. 还报过一个错,好像是创建文件时没有权限
    解决办法:对整个sonar文件夹改权限 chmod 777 -R …/sonar/

内容无关

曾想用过idea maven集成evosuite自动生成测试用例,但效果并不理想,没有eclipse生成的效果好,但记录一下自己看过的几篇相关的好的博文
Evosuite idea 插件
https://blog.csdn.net/qq_30353203/article/details/81292593https://blog.csdn.net/qq_30353203/article/details/81292593 evosuite idea

参考

https://blog.csdn.net/liuxinghao/article/details/77967158https://www.ibm.com/developerworks/cn/devops/1612_qusm_jenkins/index.html 主要参考: