Jenkins+sonar+tomcat+SVN集成搭建

 

1、 文檔說明html

本文檔用於說明Jenkins+tomcat+sonar+SVN集成分析代碼的搭建過程和可能遇到的問題及問題的相關解決辦法;本文檔針對內部人員公開,搭建過程當中一些工做是爲遠程訪問Jenkins、sonar而作,如果在本地服務器搭建則不須要作相關工做;Jenkins和sonar的搭建環境爲Linux、mysql、jdk1.七、jenkins、sonar4.5等,相關的版本說明會在後續文檔中詳細描述。java

2、 jdk1.7安裝mysql

一、 準備jdk安裝包linux

去官方網站選擇你須要的版本,下載rpm包,http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ;web

二、 安裝jdksql

1)安裝rpm包,命令:rpm -ivh jdk-6u45-linux-amd64.rpm數據庫

2)配置JDK環境變量:編程

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

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的版本,表示安裝成功

 

3、 sonar安裝與配置

一、 安裝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;

二、 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」),運行界面以下:

 

4、 sonar-runner安裝與配置

一、 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

二、 sonar-runner的配置

 

修改sonar.host.url、sonar.jdbc.url、sonar.jdbc.username、sonar.jdbc.password、sonar的登陸名和密碼,修改爲實際的sonar配置

至此,sonar-runner安裝完成

 

 

5、 Jenkins安裝

一、 Jenkins部署

jenkins.war文件,直接放置在Tomcat的webapps目錄下,啓動Tomcat服務;

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

 

 

 

 

 

 

二、 訪問Jenkins

訪問:http://127.0.0.1:8010/jenkins

能夠查看到如下界面,jenkins部署完成

 

三、 遇到的問題及解決辦法

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

 

 

6、 Soanr與Jenkins集成

一、安裝sonar jenkins plugin 插件

   Jenkins的插件管理中選擇sonar jenkins plugin ,該插件可使每次構建時都調用sonar進行代碼度量

  進入配置頁面對sonar插件進行配置,以下圖:

 

 

 

 

二、構建項目

點擊新建

 

 

 

輸入項目名稱:

輸入SVN地址:

 

Svn地址有中文,須要配置以下:

    

增長構建配置中選擇 invoke standalone sonar analysis,並按照以下配置(注意設置Encoding編碼,根據要分析的代碼編碼格式設置)

 

點擊保存,進入主頁面,能夠看到新建的項目,點擊項目右邊的小箭頭,點擊當即構建,即開始從SVN下載源碼

 

 

點擊項目運行結果

 

點擊console  output即

 

 

可查看控制檯打印結果。

 

 

 

應用程序構建時就會自動觸發Sonar對代碼的檢查,經過訪問sonar便可查看分析結果

 

三、 遇到的問題及解決辦法

  Jenkins與sonar集成時須要安裝插件,在Jenkins插件管理裏面不能安裝插件是能夠去【https://wiki.jenkins-ci.org/display/JENKINS/SonarQube+plugin】下載插件,而後上傳到Jenkins插件管理裏就能夠了

相關文章
相關標籤/搜索