jenkins + sonarQube 集成 检测代码质量
待完善,边搭建环境,边记录,会有遗漏的可能,等有时间 整理一番
参考:
http://blog.csdn.net/kefengwang/article/details/54377055
http://www.jianshu.com/p/a8d4825146a6
前提:linux 机器 已安装 jdk1.8 以及 jenkins
sonarQube下载地址: https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.7.zip
1.上传到服务器,解压: unzip /usr/local/sonarqube-6.7.zip -d /usr/local/
没安装unzip 命令,报错 command not found
执行:yum install -y unzip zip
执行脚本 /usr/local/sonarqube-6.7/bin/linux-x86-64/sonar.sh
提示 Usage: /usr/local/sonarqube-6.7/bin/linux-x86-64/sonar.sh { console | start | stop | restart | status | dump }
启动sonarqube: /usr/local/sonarqube-6.7/bin/linux-x86-64/sonar.sh start
提示
Starting SonarQube...
Started SonarQube.
查看日志:/usr/local/sonarqube-6.7/logs/es.log 中提示到 can not run elasticsearch as root
参考:http://blog.csdn.net/gebitan505/article/details/54709515
https://my.oschina.net/topeagle/blog/591451?fromerr=mzOr2qzZ
创建组:groupadd sonarqube
创建用户 并添加到组:useradd sonarqube -g sonarqube -p sa***dd
切换普通用户:su - sonarqube
这里遇到了问题: Authentication failure 没有权限,找了N久
在 google上搜索到:https://stackoverflow.com/questions/47731102/cant-run-sonar-server-caused-by-elasticsearch-cannot-running-as-root
从回答中找到:https://stackoverflow.com/questions/47731102/cant-run-sonar-server-caused-by-elasticsearch-cannot-running-as-root
编辑/ opt / sonarqube / bin / sonar.sh - 找到RUN_AS_USER条目,取消注释并设定为刚刚创建的用户
最后启动:/usr/local/sonarqube-6.7/bin/linux-x86-64/sonar.sh start
通过:netstat -nlp 可以看到9000端口已打开
说明已经启动成功,都8点14了哎2小时了,才搞到这,还得继续加油
换了个端口后 继续启动 发现又挂了,看一下log发现是 Caused by: org.h2.jdbc.JdbcSQLException: Connection is broken: "session closed" [90067-176]
jdbc 就根本没配置 sonar.properties
配置了jdbc 连接信息后 又报错
vm.max_map_count=655360
这时候发现 机器内存根本不够 sonar 起码要2G 机器运行要1G 而我使用的机器也就2G的内存 oh my good
内网传输到另外一台阿里云机器上 scp -r /usr/local/sonarqube-6.7 root@172.***.**.254:/usr/local/
vi /etc/sysctl.conf
vm.max_map_count=655360
内存配置不够 修改配置
查看限制: ulimit -Hn
vi /etc/security/limits.conf
http://blog.csdn.net/xxxxxx91116/article/details/17136299
忘记给文件夹权限了 给权限后 chown -R sonarqube /usr/local/sonarqube-6.7
启动成功了,现在时间2017-12-18 21:44:36
回家再搞
找到汉化插件:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-1.19
首页上的 localization 块中的指向了github上的源码位置
进服务器重启
已经汉化
配置jenkins 系统管理--》管理插件--》SonarQube servers--》输入对应的参数
Server authentication token需要在 SonarQube 服务器上获取(在管理员头像--我的帐号--安全中可以生成)
用于扫描结果上传到服务器上进行分析
禁用SonarQube 配置--》SCM--》Disable the SCM Sensor (默认关闭,点开它)
(从源代码控制管理器中禁用检索错误信息,似乎从源代码中会更简单,不过这次还是跟着教程走吧)
配置没有生效 项目报错,连接到了本地的127.0.0.1:9000 这个地址上去了
jenkinsurl地址/exit 重启一下jenkins
任然不行
经过一番资料查找,终于搞明白 原来
还得装个软件,
SonarQube Scanner 等于是个客户端
SonarQube 是服务器端
参考:http://blog.csdn.net/w171066/article/details/52366627
配置参数参照表:https://docs.sonarqube.org/display/SONAR/Analysis+Parameters
https://docs.sonarqube.org/display/PLUG/Java+Plugin+and+Bytecode
在配置好的jenkins项目中
Post Steps动作之后:Execute SonarQube Scanner --> Analysis properties 填写如下配置
#项目key (用你认为有意义的值)
sonar.projectKey=2017-12-19-job
#项目名称
sonar.projectName=cuimi-job
sonar.projectVersion=1.0
#源码位置
sonar.sources=cuimi-job/src/main/java
#编译后的class位置
sonar.java.binaries=cuimi-job/target/classes
#java语言
sonar.language=java
sonar.sourceEncoding=UTF-8
在出现 SonarQube scanner exited with non-zero code: 1
的时候要注意看error给出的提示信息
2017-12-19 03:01:26 唉!菜是原罪
=============================
服务器重启,重启流程
切换用户:su - sonarqube
启动:/usr/local/sonarqube-6.7/bin/linux-x86-64/sonar.sh start
更多推荐
所有评论(0)