1.1 jenkins安裝與升級
1、下載地址(官網):http://jenkins-ci.org/
2、安裝:比較簡單,這裏就是將下載的jenkins.war放到tomcat下即可。然後訪問配置。
這裏需要說一下的是,我是在linux下用root賬號安裝的jenkins。當我們安裝成功後進行配置的時候,相關的配置文件生成在/root/.jenkins/目錄下。當我們從svn獲取相關文件的時候也一併存儲在這個根目錄下的目錄中。
3、升級:現階段升級只需要直接替換war包,原有設置項都會生效。
1.2 jenkins配置
1.2.1 安裝ant
從官網下載了一個ant的最新版本。解壓到/usr/local/目錄
做相關環境變量聲明,這裏我將環境變量聲明到/etc/profile.d/目錄下,寫了一個java.sh shell腳本。
如下:
JAVA_HOME=/usr/java/jdk1.6.0_22
ANT_HOME=/usr/local/apache-ant-1.8.4
CATALINA_BASH=$TOMCAT_HOME
CATALINA_HOME=$TOMCAT_HOME
JRE=$JAVA_HOME/jre
MAVEN_HOME=/usr/local/maven3
CLASSPATH=$JAVA_HOME/lib:$JRE/lib
PATH=$MAVEN_HOME/bin:$ANT_HOME/bin:$JAVA_HOME/bin:$JRE/bin:$PATH
export JAVA_HOME JRE CLASSPATH PATH CATALINA_BASH CATALINA_HOME MAVEN_HOMEANT_HOME
1.2.2 安裝maven
到maven的官方站點下載maven的最新版本3.0.3版本。解壓到/usr/local/目錄下。同樣做環境變量聲明。這裏我在/etc/profile.d/目錄下寫了一個java.sh文件進行聲明。
如下:
JAVA_HOME=/usr/java/jdk1.6.0_22
ANT_HOME=/usr/local/apache-ant-1.8.4
CATALINA_BASH=$TOMCAT_HOME
CATALINA_HOME=$TOMCAT_HOME
JRE=$JAVA_HOME/jre
MAVEN_HOME=/usr/local/maven3
CLASSPATH=$JAVA_HOME/lib:$JRE/lib
PATH=$MAVEN_HOME/bin:$ANT_HOME/bin:$JAVA_HOME/bin:$JRE/bin:$PATH
export JAVA_HOME JRE CLASSPATH PATHCATALINA_BASH CATALINA_HOME MAVEN_HOME ANT_HOME
1.2.3 配置jenkins
“系統管理”-》“配置管理”中進行全局的相關配置
全局設置
主要是系統的全局目錄設置。這裏會自動生成到/root/.jenkins/ 下。這裏會將jenkins相關的數據存儲以及相關文件存放都統一放到這個目錄下。
全局環境變量設置
假如我們將findbugs這個插件想在項目中引入,那麼就需要需要環境變量設置。當然我們也可以設置其他的環境變量。這裏我們可以直接在jenkins中定義jenkins能使用的全局環境變量。如下圖:
配置JDK
jenkins是需要指定jdk進行代碼編譯檢查的。這裏可以指定JDK的相關配置路徑。如下圖:
配置ANT
jenkins需要指定ant的配置目錄,進行相關調用。如下圖:
配置maven
指定maven的相關目錄,同時也指定了maven運行時的內存。如下圖:
配置sonar runner
當我們創建一個job的時候可能需要通過sonar runner插件來完成sonar的調用,這裏我們指定安裝sonar2.0插件
配置sonar
jenkins的sonar插件相當於sonar的客戶端,這裏需要配置指定我們接收sonar數據的服務器,這裏我們需要配置下sonar的服務器端相關參數。如下圖:
郵件通知
當jenkins進行完成的時候,需要進行郵件通知,這裏就是設定發送郵件的SMTP服務器以及郵箱。如下圖:
1.3 創建JOB
針對一個項目的持續集成構建,需要進行相關的配置。並對之前之後進行相關插件的調用。
1.3.1 設置項目基本信息
主要是構建項目的名稱以及描述
構建項目的相關配置項。
如下圖示例:
1.3.2 高級設置選項
這裏的設置我是很少選擇,看個人需要了。如下圖:
1.3.3 源碼管理(指定SVN路徑)
這裏因爲公司的源碼服務器是svn,所以直接展示svn的設置了,如果是cvs也是可以的。這裏對svn的訪問權限是在系統全局設置中設定的。這裏只是指定具體的項目路徑。
如下圖:
1.3.4 構建觸發器
就是設定什麼時候觸發這個job的持續集成。
支持linux的時間格式。這裏我設置了每天執行一次。
如下圖:
1.3.5 配置構建之前的動作
這裏有一些在構建之前的相關操作動作。這裏我很少使用。如下圖示例:
1.3.6 指定pom.xml文件的執行命令
這裏在上邊源碼管理的時候將文件下載到/root/.jenkins/jobs/cmsouter_test/workspace/下
pom.xml文件一定要在這個目錄能找到。否則執行失敗。
常規命令執行
一般我們執行maven的命令如下:
mvn clean compilepackage
在jenkins的job中如何配置
在jenkins中配置的時候將mvn去掉。直接用“cleancompile package”
如下圖示例:
1.3.7 配置構建之後的動作
我在構建之後執行了sonar的分析,通過sonar插件將構建相關數據發送到sonar服務器去進行分析。這裏需要進行一些配置。這裏一些配置參數必須設置,否則無法成功調用sonar服務器。
如下圖:
當然我們也可以不選擇sonar進行構建。不過我已經將findbugs之類的放到sonar中了。這樣一勞永逸。
這裏我項目配置內容如下:
sonar.projectKey=hd:cmsouter
sonar.projectName=cmsouter
sonar.projectVersion=1.0.0
sonar.sources=/root/.jenkins/jobs/cmsouter_test/workspace/src/main/java
sonar.language=java
sonar.doxygen.generateDocumentation=enable
進行sonar分析
這裏直接通過sonar runner和全局配置中的sonar配置項進行構建後的數據傳輸。
我們還可以直接通過pom.xml文件中直接進行sonar的調用。當然執行命令就需要帶有sonar的執行了。
mvn sonar:sonar 支持
大家看到命令行中支持mvn sonar:sonar 這個命令,那需要我們在maven的conf/setting.xml 中進行設置的。設置方式參考如下:
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>
jdbc:mysql://192.168.119.158:3306/sonar?useUnicode=true&characterEncoding=utf8
</sonar.jdbc.url>
<sonar.jdbc.driverClassName>com.mysql.jdbc.Driver</sonar.jdbc.driverClassName>
<sonar.jdbc.username>root</sonar.jdbc.username>
<sonar.jdbc.password>password</sonar.jdbc.password>
<sonar.host.url>
http://192.168.119.159:9000
</sonar.host.url>
</properties>
</profile>
<activeProfiles>
<activeProfile>sonar</activeProfile>
</activeProfiles>
前提也是我們要先安裝好sonar的服務器端。這個只是通過pom.xml文件支持sonar執行命令的一種方式。
1.3.8 構建結果提醒設置
當我們構建完成後可以設置相關的郵件提醒。這裏參考示例如下:
1.4 增加負載節點
1.5 自動部署