Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

一、安装并配置Jenkins。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名网站空间、营销软件、网站建设、将乐网站维护、网站推广。

Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎。主要用于:

  • 持续、自动地构建/测试软件项目,如CruiseControl与DamageControl。

  • 监控一些定时执行的任务。

    它有两种安装方法,一种是独立安装,另一种是做为一个Tomcat的一个war插件来运行(JDK环境是必不可少的),先下载Tomcat,解压tomcat到某个目录,如/usr/local,进入tomcat下的/bin目录,启动tomcat,将jenkins.war文件放入tomcat下的webapps目录下,启动jenkins时,会自动在webapps目录下建立jenkins目录,所以在地址栏上访问时需要在IP后面加Jenkins目录,例如:http://IP/jenkins:8080。

    使用命令行命令Scanner及Runner分析代码,需要人工下载源代码文件夹到分析命令所在服务器进行人工运行,持续性分析体验很差。使用Jenkins可以自动的下载源代码,并自动完成分析,还可以设置定时任务,实现全自动,是懒人必备利器啊!

    下例中,使用Git+Scanner及Git+Maven分别进行源代码自动分析。原理基本一样,首先要有一个代码库,如Bitbucket,然后在Jenkins中配置Git从代码库中自动下载最新的代码,最后调用Scanner或Maven把代码发送到SonarQube进行分析,SonarQube上显示本次项目的分析报告。

1、在CentOS中独立安装Jenkins、Maven。

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo  #添加Jenkins的源
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key      #安装Jenkins的Key     
yum install jenkins                                            #安装Jenkins     
ll /usr/lib/jenkins/            #安装成功后可以查看到Jenkins的war包,如果要升级jenkins,只需要下载这个war包替换下就行。     
vim /etc/sysconfig/jenkins      #配置Jenkins,默认启动端口8080,如果不需要改,配置文件可以不动
systemctl start jenkins         #启动Jenkins服务
chkconfig jenkins on            #设置为开机自动启动
cat /var/lib/jenkins/secrets/initialAdminPassword               #显示Jenkins安装后的Admin的授权号码,复制出来在网页登陆时粘贴上,用于完成授权。

2、在其它电脑上浏览器访问Jenkins,访问地址:http://服务器IP:8080,粘贴上复制好的授权号,授权成功后,设置管理员账号及密码,再安装默认组件,最后进入启动界面:

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

在Jenkins中下载并安装sonarQube Plugin插件。    
   
Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

安装完成后勾选下图,Jenkins自动重启。

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

3、在Jenkins中配置Sonar及设置全局配置

在Jenkins首页的系统管理》系统配置中找到Sonaqube的配置项

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

设置全局工具配置

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

 

4、新建一个自由项目,并配置Scanner时行配置

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

在Bitbucket中找到要分析项目源码Git地址,复制下来

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

在Git中配置源码获取地址,并增加在Bitbucket中最少具有读取权限的用户名及密码,实现从源码库下载源码的功能。

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

构建Scanner来执行代码分析

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

把Scanner的配置文件复制到Analysis properties中,项目名称、主键、版本号根据实际需要修改。

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

立即构建首次代码分析

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

查看执行过程

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

出现错误,和SonarQubo中的Findbugs插件有冲突,需要在SonarQubo中删除这个插件,再执行分析就能成功

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

分析成功

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

SonarQube中查看分析结果

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

 

5、安装Maven,并新建一个maven项目,进行配置

在系统管理——》全局工具管理中安装Maven

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

随便取个名字并保存

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

现在还不会安装maven,只有在“立即构建”时才会执行安装maven的操作,接下来新建一个maven项目

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

同样的配置Git

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

源码目录下的“pom.xml”是Eclipse中的Maven生成的配置文件,需要在Eclipse中先进行配置,并且生成在根目录下。

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

增加一个执行Shell

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

写入如下命令

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

第一次很慢,因为要先下载Maven安装后,再执行代码分析,以后就快多了,构建成功了在Console Output中有SUCCESS的提示

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)

在sonar中查看(这是已经配置好的仪表盘)

Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)


文章名称:Sonar6.0应用之四:与Jenkins集成分析(Scanner+Maven)
标题链接:http://myzitong.com/article/piedso.html