这篇主要涉及jenkins和sonarqube的集成
sonarqube的配置感觉简直到处是坑,所以写一篇博客记录一下,以免以后经常忘记
前提:已经安装了mysql5.6+,mariadb也不行
安装sonarqube
参考https://blog.csdn.net/flysqrlboy/article/details/80525727
创建数据库及修改配置文件
安装插件
jenkins上安装sonarqube plugin ,如果没有就安装sonarqube scanner for jenkins这个插件。
安装sonarqube Scanner
参考https://www.jianshu.com/p/1e59cd5cddb5 安装Scanner
配置
- 在 系统管理->Global Tool Configuration 中配置/安装最新的SonarQube Scanner:
- 配置SonarQube服务
SonarQube Scanner工具需要把扫描的代码及结果发送到SonarQube服务器上,所以需要配置SonarQube服务地址。
在 系统管理->系统设置 中增加 SonarQube servers 相关配置:
可以参考https://www.jianshu.com/p/1e59cd5cddb5
获得Server authentication token
关联项目 使用
首先需要在新建的 Jenkins 项目的构建环境标签页中勾选"Prepare SonarQube Scanner evironment"
然后采取构建后分析源码
配置 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里面报的错
- sonar es can not run elasticsearch as root
错误原因:因为安全问题elasticsearch 不让用root用户直接运行
解决方法:liunx创建新用户sonarUser,使用该用户(sonarUser)运行sonar即可。
参考:http://www.voidcn.com/article/p-qxgxhrtd-brv.html - 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/52004552
https://blog.csdn.net/jxzdezhanhao/article/details/54376379 - 还报过一个错,好像是创建文件时没有权限
解决办法:对整个sonar文件夹改权限 chmod 777 -R …/sonar/
内容无关
曾想用过idea maven集成evosuite自动生成测试用例,但效果并不理想,没有eclipse生成的效果好,但记录一下自己看过的几篇相关的好的博文
Evosuite idea 插件
https://blog.csdn.net/qq_30353203/article/details/81292593
https://blog.csdn.net/qq_30353203/article/details/81292593
evosuite idea
https://juejin.im/post/5c1885c56fb9a049c30b2b77
参考
https://blog.csdn.net/liuxinghao/article/details/77967158
https://www.ibm.com/developerworks/cn/devops/1612_qusm_jenkins/index.html
主要参考:https://blog.csdn.net/flysqrlboy/article/details/80525727