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
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值