Jenkins+sonar+tomcat+SVN集成搭建

Posted ricebug2

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins+sonar+tomcat+SVN集成搭建相关的知识,希望对你有一定的参考价值。

 

一、 文档说明

本文档用于说明Jenkins+tomcat+sonar+SVN集成分析代码的搭建过程和可能遇到的问题及问题的相关解决办法;本文档针对内部人员公开,搭建过程中一些工作是为远程访问Jenkins、sonar而做,若是在本地服务器搭建则不需要做相关工作;Jenkins和sonar的搭建环境为Linux、mysql、jdk1.7、jenkins、sonar4.5等,相关的版本说明会在后续文档中详细描述。

二、 jdk1.7安装

1、 准备jdk安装包

去官方网站选择你需要的版本,下载rpm包,http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ;

2、 安装jdk

1)安装rpm包,命令:rpm -ivh jdk-6u45-linux-amd64.rpm

2)配置JDK环境变量:

a.[root@localhost tools]# vim $HOME/.bash_profile
b.添加下面信息:
  #Java Profile

export JAVA_HOME=/usr/java/jdk1.6.0_45  (按照自己的真实目录)
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin
c.保存退出;

d.使环境变量生效[root@localhost tools]#source /etc/profile

e.检测jdk是否安装成功[root@localhost tools]# echo $JAVA_HOME
/usr/java/jdk1.6.0_45(显示这一行内容表示安装成功)

 

或者[root@localhost tools]# java –version

输入上述命令会下显示jdk的版本,表示安装成功

 

三、 sonar安装与配置

1、 安装sonar

1)Sonar介绍

Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。

同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。

此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。

2)下载软件:wget http://dist.sonar.codehaus.org/sonar-3.7.4.zip
3)解压软件:unzip sonar-3.7.4.zip

4)配置数据库

Apache Derby 是Sonar自带并且默认安装使用的数据库,此外Sonar对如下数据库提供支持:MySQL 5.x, Oracle 10g XE, Postgresql, MS SqlServer等,本文以mysql为例介绍如何配置数据库:

这里首先需要配置数据库信息:
  前提是你已经安装了mysql数据库,这里将不做数据库安装的介绍;

登录数据库命令mysql –uroot -p
mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; 
mysql> grant all on sonar.* to sonar identified by ‘sonar‘; 
mysql> grant all on sonar.* to sonar@‘192.168.5.105‘ identified by ‘sonar‘;
mysql> flush privileges;

2、 sonar环境配置

(1)配置文件修改

[root@localhostdata]# vim home/dev/sonar-3.7.4/conf/sonar.properties

这里为sonar的安装路径下的conf文件夹里面的sonar.properties)
修改如下字段(就是配置数据库信息,其他不用动):

# User credentials.

# Permissions to create tables, indices and triggers must be granted to JDBC user.

# The schema must be created first.

sonar.jdbc.username=root

sonar.jdbc.password=123456(这里为链接数据库的用户名和密码)

 

#----- Embedded Database (default)

# It does not accept connections from remote hosts, so the

# server and the analyzers must be executed on the same host.

#sonar.jdbc.url=jdbc:h2:tcp://localhost:9092/sonar

 

# H2 embedded database server listening port, defaults to 9092

#sonar.embeddedDatabase.port=9092

 

 

#----- MySQL 5.x

sonar.jdbc.url=jdbc:mysql://192.168.5.105:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

(备注:sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar若是远程部署,链接数据库的地址建议写为IP地址,有时系统不能解析localhost,以防出错)

# By default, ports will be used on all IP addresses associated with the server.

sonar.web.host=192.168.5.105IP地址)

# Web context. When set, it must start with forward slash (for example /sonarqube).

# The default value is root context (empty value).

sonar.web.context=/sonar(默认为“/”,也可以写成“/sonar”;若是“/”,访问时用IP加端口号就可以访问了,若是写成“/sonar”,访问时需在端口号后面加上“/sonar”)

 

# TCP port for incoming HTTP connections. Disabled when value is -1.

sonar.web.port=9001(访问端口号)
2)启动sonar

编辑.bash_profile,添加环境变量SONAR_HOME

$ vi $HOME/.bash_profile

修改成如下内容:

PATH=$PATH:$HOME/bin

SONAR_HOME=$HOME/sonar

退出

export PATH SONAR_HOME

使环境变量生效

Source $HOME/.bash_profile

运行如下命令启动sonar,其它操作系统sonar均提供了启动脚本

$ $SONAR_HOME/bin/linux-x86-64/sonar.sh start

或者在bin/ linux-x86-64/下执行 ./ sonar.sh

在浏览器中访问: http://localhost:9001/sonar (上下文默认为“/”,上面配置文件中修改为“/sonar”,访问时就加上“/sonar”),运行界面如下:

 技术图片

四、 sonar-runner安装与配置

1、 sonar-runner的安装

sonar-runner的安装与sonar一致;先下载安装包,然后解压安装包,再添加环境变量

编辑.bash_profile,添加环境变量SONAR_HOME

$ vi $HOME/.bash_profile

修改成如下内容:

PATH=$PATH:$HOME/bin

SONAR_RUNNER_HOME=$HOME/sonar-runner

退出

export PATH SONAR_HOME

使环境变量生效

Source $HOME/.bash_profile

2、 sonar-runner的配置

 技术图片

修改sonar.host.url、sonar.jdbc.url、sonar.jdbc.username、sonar.jdbc.password、sonar的登录名和密码,修改成实际的sonar配置

至此,sonar-runner安装完成

 

 

五、 Jenkins安装

1、 Jenkins部署

jenkins.war文件,直接放置在Tomcat的webapps目录下,启动Tomcat服务;

修改tomcat下的配置文件server.xml

 技术图片

 

 技术图片

 

 

 

2、 访问Jenkins

访问:http://127.0.0.1:8010/jenkins

可以查看到以下界面,jenkins部署完成

 技术图片

3、 遇到的问题及解决办法

1)tomcat部署Jenkins时不能解压Jenkins文件,是因为tomcat里的server.xml配置文件中多了【xmlValidation="false"  xmlNamespaceAware="false】这两个配置项,删除之后重新启动tomcat可以解决问题

2)tomcat启动是,部署Jenkins时报错【SEVERE: Failed to initialize Jenkins hudson.util.AWTProblem: java.lang.InternalError: Can‘t connect to X11 window server using ‘localhost:10.0‘ as the value of the DISPLAY variable.】

解决办法:原因:因为用到了图形处理,java程序会去寻找linux上的图形界面是否启动

解决:不让java寻找linux图形界面即可,在java 启动时加选项java -Djava.awt.headless=true  

实现:如果是tomcat,在/tomcat/bin/catalina.sh中修改为

 

JAVA_OPTS=-Djava.awt.headless=true

 

 

六、 Soanr与Jenkins集成

1、安装sonar jenkins plugin 插件

   Jenkins的插件管理中选择sonar jenkins plugin ,该插件可以使每次构建时都调用sonar进行代码度量

  进入配置页面对sonar插件进行配置,如下图:

 技术图片

 

 

 

2、构建项目

点击新建

 技术图片

 

 

输入项目名称:

技术图片

输入SVN地址:

 技术图片

Svn地址有中文,需要配置如下:

    技术图片

增加构建配置中选择 invoke standalone sonar analysis,并按照如下配置(注意设置Encoding编码,根据要分析的代码编码格式设置)

 

点击保存,进入主页面,可以看到新建的项目,点击项目右边的小箭头,点击立即构建,即开始从SVN下载源码

 

 技术图片

点击项目运行结果

 技术图片

点击console  output即

 

 

可查看控制台打印结果。

 技术图片

 

 技术图片

应用程序构建时就会自动触发Sonar对代码的检查,通过访问sonar即可查看分析结果

 技术图片

3、 遇到的问题及解决办法

  Jenkins与sonar集成时需要安装插件,在Jenkins插件管理里面不能安装插件是可以去【https://wiki.jenkins-ci.org/display/JENKINS/SonarQube+plugin】下载插件,然后上传到Jenkins插件管理里就可以了

 

 

以上是关于Jenkins+sonar+tomcat+SVN集成搭建的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins和Sonar集成

dubbo+dubbo-monitor+nexus+sonar+svn+jenkins+linux-dash搭建项目开发平台

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

jenkins--svn+Email自动触发3(jenkins全局设置)

Jenkins+svn+ant+tomcat持续集成

SVN+Maven+Tomcat+Jenkins持续构建