Jenkins+Sonar搭建持续集成和代码质量检查环境
Jenkins+Sonar搭建
一、相关环境及下载地址
|
二、软件安装
Jenkins安装
命令:dpkg –i jenkins_2.121.3_all.deb
若有报错,执行# apt-get update 和# apt-get –f install, # ln -s /opt/jdk1.8.0_131/bin/java /usr/bin/java
启动:service Jenkins start
安装目录:
- pid目录:/var/run/Jenkins
- war目录:/usr/share/Jenkins
- home目录:/var/lib/Jenkins
- webroot目录:/var/cache/jenkins/war
- log目录:/var/log/Jenkins
- config文件:/etc/default/jenkins
Sonar安装
解压:unzip -o sonarqube-7.3.zip -d /usr/local/src/
配置:修改sonar.properties,配置MySQL信息。
启动:
cd /usr/local/src/sonarqube-7.3/bin/linux-x86-64/
./sonar.sh start
汉化:
下载https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases的jar包到sonar安装目录的extensions\plugins目录即可。
安装目录:(即解压目录)
- home目录:/usr/local/src/sonarqube-7.3
- log目录:/usr/local/src/sonarqube-7.3/logs
- temp目录:/usr/local/src/sonarqube-7.3/temp(运行时临时数据)
- data目录:/usr/local/src/sonarqube-7.3/data(H2数据库使用)
- config文件:/usr/local/src/sonarqube-7.3/conf/sonar.properties
Sonar-Scanner安装
解压:unzip -o sonar-scanner-cli-3.2.0.1227-linux.zip -d /usr/local/src/
检查:./sonar-scanner –h
安装目录:
- home目录:/usr/local/src/sonar-scanner-3.2.0.1227-linux
- config文件:/usr/local/src/sonar-scanner-3.2.0.1227-linux/conf/sonar-scanner.properties
Nginx转发
已申请域名:xxx
需要配置https。
Nginx配置:
server {
server_name xxx;
listen 80;
return 301 https://$host$request_uri;
}
server {
server_name xxx;
listen 443 ssl;
ssl_certificate /usr/local/nginx/conf/ssl/xxx.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/xxx.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers RC4:HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
access_log /data/weblog/nginx/xxx-access.log main;
expires 15m;
ssi on;
charset utf-8;
error_page 500 502 503 504 /50x.html;
client_max_body_size 30m;
client_header_buffer_size 16k;
large_client_header_buffers 16 64k;
location / {
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:9000;
}
location /jenkins { #需要修改jenkins配置文件添加--prefix访问url的前缀,并设置监听地址为127.0.0.1
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080/jenkins;
}
}
修改路径
Jenkins修改路径
- 1.
pid目录修改
a)
修改config文件(/etc/default/jenkins)的PIDFILE值,修改后的目录要保证已经存在。
- 2.
war目录修改
a)
修改config文件的JENKINS_WAR值,修改完成后,需要将原war目录中的jenkins.war文件(/var/share/jenkins/jenkins.war)拷至新目录中。
- 3.
home目录修改
a)
修改config文件的JENKINS_HOME值,修改完成后,需要将原home目录中的所有文件(/var/lib/jenkins/*)拷贝至新目录。
- 4.
log目录修改
a)
修改config文件的JENKINS_LOG值,修改后的目录要保证存在。
- 5.
webroot目录修改
a)
修改config文件中JENKINS_ARGS值的--webroot属性,修改完成后,需要将原webroot目录中的所有文件(/var/cache/jenkins/war/*)拷贝至新目录中。
Sonar修改路径
- 1.
home目录修改
a)
解压时指定解压目录即可。
- 2.
temp目录修改
a)
修改config文件(sonar.properties)的sonar.path.temp值,修改后的目录要保证存在。
- 3.
data目录修改
a)
修改config文件的sonar.path.data值,修改后的目录要保证存在。
- 4.
log目录修改
a)
修改config文件的sonar.path.logs值,修改后的目录要保证存在。
PS:由于Sonar启动需要使用非root账户,所以Sonar的启动账户需要对上述目录有读写权限。
Sonar-Scanner修改路径
home目录修改
解压时指定目录即可。
三、配置环境
配置Sonarqube
首先是Sonarqube,因为后续步骤需要Sonarqube中生成的一个Authentication Token值。
打开Sonarqube,默认情况下是localhost:9000,登录使用admin/admin,然后会进入引导页,需要输入一个key,可以任意,输入确定后会生成一个Authentication Token值,这个比较重要,也只会显示一次,保存下来,然后按照提示操作完OK,我们只需要这个值;当然万一丢失了怎么办,不要慌张,我们重新生成,点击配置》权限》用户》令牌,如下图:

弹出框中,就可以为admin账户重新生成令牌,如下图:

我刚刚就生成了一个名字为new的令牌,横杠那就是令牌值,很重要,需要保存起来。
配置Jenkins
初始化密码
然后Jenkins,进入的时候需要等待,网上有说可以把工作目录中刚刚生成的文件hudson.model.UpdateCenter.xml中的url修改成http://mirror.xmission.com/jenkins/updates/update-center.json,再重启可以跳过等待,大家可以试一下。如果一直等待到离线模式,那么直接点击进入系统(具体按钮名字叫啥忘记了,但是绝对不是那个代理的按钮),或者进入引导式步骤,只要在安装插件的那一步,点击右上角的叉,关闭安装跳过这部就行;不论哪种最后都会到让你输入管理员密码,然后呢,你就需要去日志文件中找生成的密码,如果不修改路劲,那么日志是在/var/log/jenkins/jenkins.log,如下图:

打横线的就是初始化密码,或者去红框中的路劲找也可以的。
进入系统之后我们看到的界面是如下图:

安装Jenkins插件
OK,我们需要去安装插件了,系统管理》插件管理》可选插件,我们搜索以下几个:
- Git plugin
- JUnit Plugin(可能已经安装)
- Maven Integration plugin
- Subversion Plug-in
- SonarQube Scanner for Jenkins
安装即可,选中点击下方的直接安装,如下图:

配置Sonarqube
Server
进行相关配置,为了让我们能正常运行任务,系统管理》系统设置,然后我们需要新增一个Sonarqube,如下图:

点击了Add SonarQube按钮,之后就能出现框中的TAB页,name随意,Server URL必须要填写刚刚我们安装的Sonarqube服务的地址,而且一点必须是你的计算机能够打开的地址(至于为什么,后面的使用篇再讲),Server authentication token就是刚刚在Sonarqube中配置的Token值。
配置JDK
下一项配置,系统管理》全局工具配置,首先JDK,点击JDK安装,如下图:

填写好当前环境的JAVA_HOME值,别名随意,重要的是去掉自动安装选项。
配置SonarQube Scanner
然后SonarQube Scanner安装,如下图:

同样填写好SONAR_RUNNER_HOME的值,然后去掉自动安装选线。
配置Maven
然后Maven安装,如下图:

填写好MAVEN_HOME的值,Name随意,去掉自动安装选项。
最后,访问测试。
注:jenkins可以升级到最新版本,并熟悉gitlab和gitlab hook等插件的使用。
添加项目



添加完成之后,点击构建,成功之后即可在sonar中看到代码分析的结果。
Jenkins+Sonar搭建持续集成和代码质量检查环境的更多相关文章
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)
前言 上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库 ...
- Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)
上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以 ...
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
前言 但凡一个略有规模的项目都需要一个持续集成环境的支撑,为什么需要持续集成环境,我们来看一个例子.假如一个项目,由A.B两位程序员来协作开发,A负责前端模块,B负责后端模块,前端依赖后端.A和B都习 ...
- Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一) 2015-01-14 20:28 by 飘扬的红领巾, 4322 阅读, 5 评论, 收藏, 编辑 ...
- 基于 Jenkins 快速搭建持续集成环境
什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火 ...
- Jenkins+Gitlab搭建持续集成(CI)环境
利用Jenkins+Gitlab搭建持续集成(CI)环境 Permalink: 2013-09-08 22:04:00 by hyhx2008in intern tags: jenkins gitla ...
- 基于 Jenkins 快速搭建持续集成环境--转
源地址:http://www.ibm.com/developerworks/cn/java/j-lo-jenkins/ 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础 ...
- Jenkins 快速搭建持续集成环境
持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域 ...
- Jenkins快速搭建持续集成
基于Jenkins快速搭建持续集成环境 Jenkins+tortoisesvn+MSBuild做到持续集成 附Jenkins的使用:http://www.infoq.com/cn/articles/M ...
随机推荐
- 浏览器中实现3D全景浏览
如果你用过网页版的百度地图,你大概3D全景图浏览是一种怎样的酷炫体验:在一个点可以360度环顾周围的建筑.景色,当然也可以四周移动,就像身临其境. 科普 全景图共分为三种: ①球面全景图 利用一张全景 ...
- UWP项目生成安装包远程安装在树莓派上
原文: UWP项目生成安装包远程安装在树莓派上 哎,好纠结啊!如果这个名字写的太长,会显得太繁琐,如果写的短又好像说不清楚,我这语言表达水平实在是令人担忧啊!不过应该能够明白啥意思吧!因为对这个感兴趣 ...
- 智能合约开发——以太坊 DApp 实现 购买通证token
合约的buy()方法用于提供购买股票的接口.注意关键字payable,有了它买股票的人才可以付钱给你. 接收钱没有比这个再简单的了! function buy() payable public ret ...
- 各种 MacBook 和 5K iMac 屏幕分辨率对比
苹果全新 12寸超薄 MacBook 比曾经最薄的 MacBook Air 更薄,不过却配备了Retina 显示屏.12寸 Retina MacBook 上的显示屏分辨率为2304*1440,虽然不如 ...
- c#实现类似数据的行锁
当我们有一些这样的需求,比如某个订单中下单,修改等等这些是单例执行的,不能同步操作,当然这样的情况你可以使用数据库的行锁来实现,但是我们代码里面实现的话 ,我们也要用到锁,大部分情况下我们使用lock ...
- Mac OS下terminal的快捷键
时隔2年又开始使用Mac OS系统,之前的很多快捷键和常用的命令都忘记了,使用起来确实不方便,效率也低,特别是terminal下,所以对于terminal又找了一下并整理如下,希望对后来的同学也有用: ...
- Android消息机制架构和源码解析
http://wangkuiwu.github.io/2014/08/26/MessageQueue/
- ***R(TCP over UDP,UDP over TCP)
https://github.com/breakwa11/shadowsocks-rss
- 【数据结构】30、hashmap=》hash 计算方式
前提知识 写在前面,为什么num&(length - 1) 在length是2的n次幂的时候等价于num%length n - 1意味着比n最高位小的位都为1,而高的位都为0,因此通过与可以剔 ...
- Laravel中我们登录服务器通过 Tinker 手动创建后台管理用户
Laravel中我们可以登录到服务器通过 Tinker 手动创建后台用户 laravel中tinker命令的作用是用来调试laravel,可以打印变量或对象信息,显示函数代码,对数据库写入和查询数据. ...