Linux下配置Jenkins+git+sonar+sonar-scanner

一、sonar和sonar-scanner的安装:

1. 下载sonar,地址https://www.sonarqube.org/downloads/

2. 下载sonar-scanner,wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-linux.zip

3. unzip上面的两个压缩包

4. sonarqube-6.7.6/bin/linux-x86-64目录下启动sonar,命令是sh sonar.sh console 默认访问端口9000.启动后访问地址http://ip:9000/可以出现sonar的首页,下载中文安装包(我这是已经装过了)


Linux下配置Jenkins+git+sonar+sonar-scanner_第1张图片

5. 为sonar配置数据库地址,自行安装mysql设置好库名用户名密码,此处不再赘述,然后修改sonar解压后文件中的配置,

conf下的sonar.properties文件,设置

sonar.jdbc.username=

sonar.jdbc.password=

sonar.jdbc.url=

sonar.web.javaOpts=(为了防止堆内存不够用可以适当加大一点)

sonar.web.host=0.0.0.0

sonar.web.port=9000

6. 设置后进入bin目录下重启sonar,sh sonar.sh start

此时发现进程起不来,退出了,查看logs目录下的sonar.log报错 [o.s.a.p.AbstractProcessMonitor] Process exited with exit value [es]: 143

看网上资料说是es报错,查看es日志发现有一条 WARN es[][o.e.b.BootstrapChecks] max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]。这里需要调整/etc/sysctl.conf文件,追加vm.max_map_count=262144然后执行sysctl -p使生效

接下来重新启动发现还是报错起不来,并且sonar.log和es.log都没有报错信息,于是看了下web.log报错如下Web server startup failed: Unsupported mysql version: 5.5. Minimal supported version is 5.6.,原来是我配置的mysql版本太低了,于是找了个5.6版本的mysql重新配置,至此可以成功启动

7. sonar-scanner安装只需要把sonar-scanner的bin目录加到环境变量path中即可

二、 Jenkins下配置sonarQube和sonar-scanner

1. 下载和启动Jenkins,非常简单,下载完Jenkins的war包,然后java -jar jenkins.war即可启动,默认端口8080

2. 进入Jenkins控制台,下载sonar和git对应的插件,我这边的是:


Linux下配置Jenkins+git+sonar+sonar-scanner_第2张图片

3. Jenkins的系统设置中添加SonarQube servers,配置路径和认证。


Linux下配置Jenkins+git+sonar+sonar-scanner_第3张图片

其中Server authentication token是在sonar中生成的,生成方法:admin登陆

Linux下配置Jenkins+git+sonar+sonar-scanner_第4张图片

4. Jenkins的全局路径中配置sonar-scanner的路径如下:


Linux下配置Jenkins+git+sonar+sonar-scanner_第5张图片

5. 然后就可以愉快的在Jenkins中添加job并且对其进行静态代码分析了。我的job的主要配置:


Linux下配置Jenkins+git+sonar+sonar-scanner_第6张图片
Linux下配置Jenkins+git+sonar+sonar-scanner_第7张图片


Linux下配置Jenkins+git+sonar+sonar-scanner_第8张图片

6. 配置完成job后,立即构建,理论上就可以构建成功,并且Jenkins出现可以链接过去的分析结果像酱紫

Linux下配置Jenkins+git+sonar+sonar-scanner_第9张图片

链接过去大概是酱紫:


Linux下配置Jenkins+git+sonar+sonar-scanner_第10张图片

但怎么会这么顺利呢,我这边构建出现的问题汇总如下,下面对应Jenkins日志报的错和解决方法

1. Caused by: java.io.IOException: Cannot run program "git" (in directory "/home/devs/.jenkins/workspace/itsm-sonar"): error=2, 没有那个文件或目录

很明显,这是因为装Jenkins那台机器没有安装git,装一下即可

2. Caused by: Not authorized. Please check the properties sonar.login and sonar.password.

这是因为在Jenkins的  analysis properties没有配置sonar.login and sonar.password. 加上就好

3. Caused by: You must define the following mandatory properties for 'itsm': sonar.sources

啊这个是最坑的,在网上搜都说analysis properties信息不全或者少什么properties文件来着。。结果各种尝试都没用,最后发现analysis properties是sonar.sources前面多了一个空格。。。想骂人有没有。。

OK。。至此介绍完毕

你可能感兴趣的:(Linux下配置Jenkins+git+sonar+sonar-scanner)