centos裏使用jenkins服務器來自動持續構建maven的java項目

1. 安裝jenkins。

         注意:個人jenkins切換到了1.509.3  ,由於我以前的1.4那個版本沒有用戶角色管理java

1.1.配置java的環境變量

        前面的一篇博文裏面有介紹,可是我當時是將java的環境變量是導入了當前shell裏面,當重啓一個shell就不起做用了,因此在這兒直接將JAVA_HOME的環境變量放入~/.bash_profile文件裏面這樣全部的用戶啓動的任何shell均可以使用這個環境變量了。shell

.bash_profile添加以下內容:apache

export JAVA_HOME=/opt/mcu/dm/java/jdk1.6.0_45
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

使環境變量生效centos

source .bash_profile

執行java,會出現一堆東西,表示成功了。 bash

1.2.運行jenkins

將jenkins.war包拷貝到centos系統下面任何一目錄,執行服務器

java -jar jenkins.war

jenkins服務器就啓動,他的數據存在~/.jenkins目錄下面maven

之後每次啓動jenkins就會去這個目錄來讀取jenkins系統的設置和加載已經建立的jenkins任務(jobs)svn

2.安裝maven

      之因此要安裝maven,由於等下用jenkins來構建java項目時候,會去調用maven來構建該java項目,因此要先安裝好maven單元測試

.     去官網下載apache-maven-2.2.1-bin.tar,不能用maven3,否則等下構建的時候會報以下錯誤:測試

  

將該壓縮包解決到/home/develop目錄下面,而後添加到環境變量便可,即向~/.bash_profile文件裏面加入maven的環境變量,最後~/.bash_profile的內容以下:

export JAVA_HOME=/opt/mcu/dm/java/jdk1.6.0_45
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export MAVEN_HOME=/home/develop/apache-maven-2.2.1
export PATH=$MAVEN_HOME/bin:$PATH

使環境變量生效

source .bash_profile

執行mvn -v 出現maven和jdk的版本表示成功了。

3.建立一個jenkins構建的maven的java項目(結合svn)

3.1.配置jenkins的全局配置(如下是最小的必配)   

      使用jenkins構建項目的任務以前,必須設置一些jenkins的全局設置。

單擊首頁左邊的「系統管理」,進入「系統設置」,在這裏對jenkins進行全局設置
1) JDK安裝。若是沒有讀取出系統變量,就手動設置好別名和JAVA_HOME就能夠了
2) Maven同理
 

3)郵件通知配置

注意:這個system Admin e-main address必定要配置,這個是郵件發送人的地址,若是你這個沒有配置,等着發郵件的時候報錯吧。

4)配置subversion

Subversion Workspace Version:Subversion 的版本號,選擇你對應的版本號就好了

全局配置基本差很少了。

3.2.構建Maven風格的Job

1) 在頁面中點擊「新job」,輸入任務名稱,選擇「構建一個maven2/3項目」,以下圖:



2) 點擊ok按鈕進入任務配置頁面,首先配置項目的svn地址,以下圖:

點擊 enter credential 輸入用戶名和密碼(我猜你們通常都是使用的用戶名和密碼登錄的)

 

點擊保存,由於jenkins去svn服務器checkout代碼的時候須要用戶名和密碼,不然checkout失敗。

3)配置當用戶svn更新該項目代碼了,就觸發jenkins去構建

這個*/5 * * * * 表示沒5分鐘去檢查svn有沒有更新,若是有更新就去構建該項目。

 

Poll SCM :這是CI 系統中常見的選項。當您選擇此選項,您能夠指定一個定時做業表達式來定義Jenkins每隔多久檢查一下您源代碼倉庫的變化。若是發現變化,就執行一次構建。例如,表達式中填寫0,15,30,45 * * * *將使Jenkins每隔15分鐘就檢查一次您源碼倉庫的變化。

Build periodically :此選項僅僅通知Jenkins按指定的頻率對項目進行構建,而無論SCM是否有變化。若是想在這個Job中運行一些測試用例的話,它就頗有幫助。

 

日程表參數解釋以下:

  • 第一個參數表明的是分鐘 minute,取值 0~59;
  • 第二個參數表明的是小時 hour,取值 0~23;
  • 第三個參數表明的是天 day,取值 1~31;
  • 第四個參數表明的是月 month,取值 1~12;
  • 最後一個參數表明的是星期 week,取值 0~7,0 和 7 都是表示星期天。

如0 * * * * 表示的就是每一個小時的第 0 分鐘執行一次構建。

注意:每一個*之間有空格,不然會報錯誤。

4) 配置maven的pom文件位置,可使用相對路徑(相對於svn地址庫中的位置),以下圖:


5) 配置maven編譯參數,以下圖所示不執行單元測試:

關於maven的編譯參數可參考Maven基本命令
6)郵件通知
構建郵件通知配置以下圖,Recipients欄目中添加須要發送郵件通知的郵件地址,當構建不穩定或失敗就向這個郵箱發送郵件。

至此,點擊保存便可。咱們就完成了個項目的構建的配置了,咱們能夠手動去構建,也能夠更新svn的代碼,去觸發jenkins構建咱們的項目。

4.日程表參數詳解

這個日程表參數,以前總是沒怎麼弄清楚,這兒作一個詳細的總結:

日程表的參數:

  • 第一個參數表明的是分鐘 minute,取值 0~59;
  • 第二個參數表明的是小時 hour,取值 0~23;
  • 第三個參數表明的是天 day,取值 1~31;
  • 第四個參數表明的是月 month,取值 1~12;
  • 最後一個參數表明的是星期 week,取值 0~7,0 和 7 都是表示星期天。

可是咱們常常能夠看獲得一些輔助的字符。大概有下面這些:

*(星號)表明任什麼時候刻都接受。

示例1:   * * * * *         表明不論何月,何周,何日,什麼時候,何分,都執行,就是每分鐘都執行的意思。

示例2:   0 12 * * *      就表明天天12:00都執行的意思

示例3:   59 23 1 5 *   表示5月1日23點19分執行的意思。

示例4:   30 16 * * 5  表示每週五16:30執行的意思。

若是要寫一個天天凌晨1:00執行的例子

        0 1 * * *

舉了這麼多的例子,少年,星號的意思你應該get到了。

 

,(逗號)表明分割時間段。

示例1:   0 3,6 * * *          表示3:00和6:00執行

-(減號)表明一段時間範圍內

示例1:    20 8-12 * * *     表示8點到12點之間的每小時的20分都執行。

/n(斜線)  n表示數字,即每隔n個單位間隔的意思

示例1:  */5  * * * * 表示每五分鐘執行一次   用*與/5來搭配,也能夠寫成0-59/5,意思相同。

打完收工。

相關文章
相關標籤/搜索